]> git.lttng.org Git - userspace-rcu.git/commitdiff
Add serialized ABI definition files
authorMichael Jeanson <mjeanson@efficios.com>
Wed, 2 Jun 2021 14:55:22 +0000 (10:55 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 3 Jun 2021 18:25:28 +0000 (14:25 -0400)
This commit contains the serialized ABI definitions for a typical build
of the liburcu librairies. This information is extracted using
libabigail (https://sourceware.org/libabigail/).

The artefacts used to generate these were built with CFLAGS="-O0 -ggdb".

You can compare the serialized ABI with a shared object to check for
breaking changes. For example, here we compare an in-tree built version
of liburcu-memb.so with the serialized ABI of stable-0.13 :

  abidiff \
    extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-memb.so.7.xml \
    src/.libs/liburcu-memb.so

Change-Id: Icb3145cdf9f69490981ce201ec437cc83298f0a7
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
43 files changed:
Makefile.am
configure.ac
extras/Makefile.am [new file with mode: 0644]
extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml [new file with mode: 0644]
extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml [new file with mode: 0644]
extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-common.so.6.xml [new file with mode: 0644]
extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml [new file with mode: 0644]
extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml [new file with mode: 0644]
extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml [new file with mode: 0644]
extras/abi/0.10/x86_64-pc-linux-gnu/liburcu.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-common.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-memb.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml [new file with mode: 0644]
extras/abi/0.11/x86_64-pc-linux-gnu/liburcu.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-common.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-memb.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml [new file with mode: 0644]
extras/abi/0.12/x86_64-pc-linux-gnu/liburcu.so.6.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-bp.so.8.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-cds.so.8.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-common.so.8.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-mb.so.8.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-memb.so.8.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-qsbr.so.8.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-signal.so.8.xml [new file with mode: 0644]
extras/abi/0.13/x86_64-pc-linux-gnu/liburcu.so.8.xml [new file with mode: 0644]
extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-bp.so.4.xml [new file with mode: 0644]
extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-cds.so.4.xml [new file with mode: 0644]
extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-common.so.4.xml [new file with mode: 0644]
extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-mb.so.4.xml [new file with mode: 0644]
extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-qsbr.so.4.xml [new file with mode: 0644]
extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-signal.so.4.xml [new file with mode: 0644]
extras/abi/0.9/x86_64-pc-linux-gnu/liburcu.so.4.xml [new file with mode: 0644]
extras/abi/README [new file with mode: 0644]
extras/abi/dump_abi.sh [new file with mode: 0755]

index 4b28966e1577d054714a8671c58e039bd75cf1a8..613e1cd58c0e13b44e003075984059c00dd65642 100644 (file)
@@ -1,6 +1,6 @@
 ACLOCAL_AMFLAGS=-I m4
 
-SUBDIRS = include src doc tests
+SUBDIRS = include src doc tests extras
 
 dist_doc_DATA = LICENSE \
                README.md
index 6067a57f57840ef00ed6dbc5dfd0850462e26adc..c6f11e2eab214cfbfcb58ec84048c84477708a97 100644 (file)
@@ -284,6 +284,7 @@ AC_CONFIG_FILES([
        Makefile
        doc/Makefile
        doc/examples/Makefile
+       extras/Makefile
        include/Makefile
        src/Makefile
        tests/Makefile
diff --git a/extras/Makefile.am b/extras/Makefile.am
new file mode 100644 (file)
index 0000000..8a9d7fd
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: LGPL-2.1-only
+
+# Directories added to EXTRA_DIST will be recursively copied to the distribution.
+EXTRA_DIST = $(srcdir)/abi
diff --git a/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml b/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml
new file mode 100644 (file)
index 0000000..311c49f
--- /dev/null
@@ -0,0 +1,892 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-bp.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_bp -->
+    <elf-symbol name='call_rcu_after_fork_child_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_bp -->
+    <elf-symbol name='call_rcu_after_fork_parent_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_bp -->
+    <elf-symbol name='call_rcu_before_fork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_bp -->
+    <elf-symbol name='call_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_bp -->
+    <elf-symbol name='call_rcu_data_free_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_bp -->
+    <elf-symbol name='create_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_bp -->
+    <elf-symbol name='defer_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_bp -->
+    <elf-symbol name='get_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_bp -->
+    <elf-symbol name='get_call_rcu_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_bp -->
+    <elf-symbol name='get_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_bp -->
+    <elf-symbol name='get_default_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_bp -->
+    <elf-symbol name='get_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_bp -->
+    <elf-symbol name='rcu_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_child -->
+    <elf-symbol name='rcu_bp_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_parent -->
+    <elf-symbol name='rcu_bp_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_before_fork -->
+    <elf-symbol name='rcu_bp_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_register -->
+    <elf-symbol name='rcu_bp_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_bp -->
+    <elf-symbol name='rcu_defer_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_bp -->
+    <elf-symbol name='rcu_defer_barrier_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_bp -->
+    <elf-symbol name='rcu_defer_exit_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_bp -->
+    <elf-symbol name='rcu_defer_register_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_bp -->
+    <elf-symbol name='rcu_defer_unregister_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym_bp -->
+    <elf-symbol name='rcu_dereference_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_bp -->
+    <elf-symbol name='rcu_read_lock_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_bp -->
+    <elf-symbol name='rcu_read_ongoing_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_bp -->
+    <elf-symbol name='rcu_read_unlock_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym_bp -->
+    <elf-symbol name='rcu_set_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_xchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_bp -->
+    <elf-symbol name='set_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_bp -->
+    <elf-symbol name='set_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_bp -->
+    <elf-symbol name='synchronize_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_bp -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_bp -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_bp -->
+    <elf-symbol name='rcu_flavor_bp' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_bp -->
+    <elf-symbol name='rcu_gp_bp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_bp -->
+    <elf-symbol name='rcu_reader_bp' size='8' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_has_sys_membarrier -->
+    <elf-symbol name='urcu_bp_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-bp.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_bp -->
+    <class-decl name='rcu_gp_bp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='77' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_bp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='85' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_reader_bp -->
+    <class-decl name='rcu_reader_bp' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='90' column='1' id='type-id-11'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_bp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_bp::node -->
+        <var-decl name='node' type-id='type-id-12' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_bp::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- int rcu_reader_bp::alloc -->
+        <var-decl name='alloc' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='96' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='35' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-13'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='40' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-17' visibility='default' filepath='../src/urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-19' visibility='default' filepath='../src/urcu-flavor.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-16' visibility='default' filepath='../src/urcu-flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../src/urcu-flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../src/urcu-flavor.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../src/urcu-call-rcu.h' line='59' column='1' id='type-id-21'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-22' visibility='default' filepath='../src/urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-23' visibility='default' filepath='../src/urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='30' column='1' id='type-id-25'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-26' visibility='default' filepath='../src/urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-26' visibility='default' filepath='../src/urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-26' visibility='default' filepath='../src/urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-27' visibility='default' filepath='../src/urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='52' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-29' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-30' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-12' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-22' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-32' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-33' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-32'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-33'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-36' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-35'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-38' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-31'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-38'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-14'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-24'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-17'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-42'/>
+    <!-- rcu_reader_bp* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-43'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-44'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-16'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-23'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-18'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-19'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-26'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-27'/>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-51'/>
+    <!-- int urcu_bp_has_sys_membarrier -->
+    <var-decl name='urcu_bp_has_sys_membarrier' type-id='type-id-5' mangled-name='urcu_bp_has_sys_membarrier' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='109' column='1' elf-symbol-id='urcu_bp_has_sys_membarrier'/>
+    <!-- rcu_gp_bp rcu_gp_bp -->
+    <var-decl name='rcu_gp_bp' type-id='type-id-10' mangled-name='rcu_gp_bp' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='88' column='1' elf-symbol-id='rcu_gp_bp'/>
+    <!-- rcu_reader_bp* rcu_reader_bp -->
+    <var-decl name='rcu_reader_bp' type-id='type-id-43' mangled-name='rcu_reader_bp' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='104' column='1' elf-symbol-id='rcu_reader_bp'/>
+    <!-- const rcu_flavor_struct rcu_flavor_bp -->
+    <var-decl name='rcu_flavor_bp' type-id='type-id-40' mangled-name='rcu_flavor_bp' visibility='default' filepath='../src/urcu-flavor.h' line='79' column='1' elf-symbol-id='rcu_flavor_bp'/>
+    <!-- void rcu_defer_exit_bp() -->
+    <function-decl name='rcu_defer_exit_bp' mangled-name='rcu_defer_exit_bp' filepath='src/urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_bp() -->
+    <function-decl name='rcu_defer_unregister_thread_bp' mangled-name='rcu_defer_unregister_thread_bp' filepath='src/urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_bp() -->
+    <function-decl name='rcu_defer_register_thread_bp' mangled-name='rcu_defer_register_thread_bp' filepath='src/urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_bp'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_bp(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_bp' mangled-name='defer_rcu_bp' filepath='src/urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_bp'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26' name='fct' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_bp() -->
+    <function-decl name='rcu_defer_barrier_bp' mangled-name='rcu_defer_barrier_bp' filepath='src/urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_bp() -->
+    <function-decl name='rcu_defer_barrier_thread_bp' mangled-name='rcu_defer_barrier_thread_bp' filepath='src/urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_unregister_rculfhash_atfork_bp(urcu_atfork*) -->
+    <function-decl name='urcu_unregister_rculfhash_atfork_bp' mangled-name='urcu_unregister_rculfhash_atfork_bp' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_bp'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-44' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_register_rculfhash_atfork_bp(urcu_atfork*) -->
+    <function-decl name='urcu_register_rculfhash_atfork_bp' mangled-name='urcu_register_rculfhash_atfork_bp' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_bp'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-44' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_bp() -->
+    <function-decl name='call_rcu_after_fork_child_bp' mangled-name='call_rcu_after_fork_child_bp' filepath='src/urcu-call-rcu-impl.h' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_bp() -->
+    <function-decl name='call_rcu_after_fork_parent_bp' mangled-name='call_rcu_after_fork_parent_bp' filepath='src/urcu-call-rcu-impl.h' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_bp() -->
+    <function-decl name='call_rcu_before_fork_bp' mangled-name='call_rcu_before_fork_bp' filepath='src/urcu-call-rcu-impl.h' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_bp() -->
+    <function-decl name='rcu_barrier_bp' mangled-name='rcu_barrier_bp' filepath='src/urcu-call-rcu-impl.h' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_bp() -->
+    <function-decl name='free_all_cpu_call_rcu_data_bp' mangled-name='free_all_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_bp(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_bp' mangled-name='call_rcu_data_free_bp' filepath='src/urcu-call-rcu-impl.h' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='744' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_bp(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_bp' mangled-name='call_rcu_bp' filepath='src/urcu-call-rcu-impl.h' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_bp'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23' name='func' filepath='src/urcu-call-rcu-impl.h' line='707' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_bp(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_bp' mangled-name='create_all_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='628' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_bp(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_bp' mangled-name='set_thread_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='615' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_bp() -->
+    <function-decl name='get_thread_call_rcu_data_bp' mangled-name='get_thread_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_bp() -->
+    <function-decl name='get_call_rcu_data_bp' mangled-name='get_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_bp() -->
+    <function-decl name='get_default_call_rcu_data_bp' mangled-name='get_default_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_bp(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_bp' mangled-name='set_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_bp(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_bp' mangled-name='create_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='492' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_bp(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_bp' mangled-name='get_call_rcu_thread_bp' filepath='src/urcu-call-rcu-impl.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='473' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-13'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_bp(int) -->
+    <function-decl name='get_cpu_call_rcu_data_bp' mangled-name='get_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='451' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void* rcu_cmpxchg_pointer_sym_bp(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym_bp' mangled-name='rcu_cmpxchg_pointer_sym_bp' filepath='src/urcu-bp.c' line='732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='732' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-bp.c' line='732' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-bp.c' line='732' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym_bp(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym_bp' mangled-name='rcu_xchg_pointer_sym_bp' filepath='src/urcu-bp.c' line='726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='726' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='726' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym_bp(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym_bp' mangled-name='rcu_set_pointer_sym_bp' filepath='src/urcu-bp.c' line='719' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='719' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='719' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym_bp(void*) -->
+    <function-decl name='rcu_dereference_sym_bp' mangled-name='rcu_dereference_sym_bp' filepath='src/urcu-bp.c' line='714' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym_bp'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-bp.c' line='714' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void rcu_bp_after_fork_child() -->
+    <function-decl name='rcu_bp_after_fork_child' mangled-name='rcu_bp_after_fork_child' filepath='src/urcu-bp.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_bp_after_fork_parent() -->
+    <function-decl name='rcu_bp_after_fork_parent' mangled-name='rcu_bp_after_fork_parent' filepath='src/urcu-bp.c' line='666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_bp_before_fork() -->
+    <function-decl name='rcu_bp_before_fork' mangled-name='rcu_bp_before_fork' filepath='src/urcu-bp.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_bp_register() -->
+    <function-decl name='rcu_bp_register' mangled-name='rcu_bp_register' filepath='src/urcu-bp.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_register'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_bp() -->
+    <function-decl name='rcu_read_ongoing_bp' mangled-name='rcu_read_ongoing_bp' filepath='src/urcu-bp.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_bp'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_bp() -->
+    <function-decl name='rcu_read_unlock_bp' mangled-name='rcu_read_unlock_bp' filepath='src/urcu-bp.c' line='347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_bp() -->
+    <function-decl name='rcu_read_lock_bp' mangled-name='rcu_read_lock_bp' filepath='src/urcu-bp.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_bp() -->
+    <function-decl name='synchronize_rcu_bp' mangled-name='synchronize_rcu_bp' filepath='src/urcu-bp.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-44'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-50'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-52'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-53'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-54'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-55'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-56'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-57'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-58' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-59'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-58'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-52' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-61' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-61'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-62' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-63'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-64'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-65'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-63' const='yes' id='type-id-66'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-68'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-32' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-59' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml b/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml
new file mode 100644 (file)
index 0000000..681e7e6
--- /dev/null
@@ -0,0 +1,1485 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-cds.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_lfs_init -->
+    <elf-symbol name='__cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop -->
+    <elf-symbol name='__cds_lfs_pop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop_all -->
+    <elf-symbol name='__cds_lfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- _cds_lfht_new -->
+    <elf-symbol name='_cds_lfht_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add -->
+    <elf-symbol name='cds_lfht_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_replace -->
+    <elf-symbol name='cds_lfht_add_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_unique -->
+    <elf-symbol name='cds_lfht_add_unique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_count_nodes -->
+    <elf-symbol name='cds_lfht_count_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_del -->
+    <elf-symbol name='cds_lfht_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_destroy -->
+    <elf-symbol name='cds_lfht_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_first -->
+    <elf-symbol name='cds_lfht_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_fls_ulong -->
+    <elf-symbol name='cds_lfht_fls_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_get_count_order_u32 -->
+    <elf-symbol name='cds_lfht_get_count_order_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_get_count_order_ulong -->
+    <elf-symbol name='cds_lfht_get_count_order_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_is_node_deleted -->
+    <elf-symbol name='cds_lfht_is_node_deleted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_lookup -->
+    <elf-symbol name='cds_lfht_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next -->
+    <elf-symbol name='cds_lfht_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next_duplicate -->
+    <elf-symbol name='cds_lfht_next_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_replace -->
+    <elf-symbol name='cds_lfht_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_resize -->
+    <elf-symbol name='cds_lfht_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_dequeue_rcu -->
+    <elf-symbol name='cds_lfq_dequeue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_destroy_rcu -->
+    <elf-symbol name='cds_lfq_destroy_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_enqueue_rcu -->
+    <elf-symbol name='cds_lfq_enqueue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_init_rcu -->
+    <elf-symbol name='cds_lfq_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_node_init_rcu -->
+    <elf-symbol name='cds_lfq_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_destroy -->
+    <elf-symbol name='cds_lfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_empty -->
+    <elf-symbol name='cds_lfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init -->
+    <elf-symbol name='cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init_rcu -->
+    <elf-symbol name='cds_lfs_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init -->
+    <elf-symbol name='cds_lfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init_rcu -->
+    <elf-symbol name='cds_lfs_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_all_blocking -->
+    <elf-symbol name='cds_lfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_blocking -->
+    <elf-symbol name='cds_lfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_lock -->
+    <elf-symbol name='cds_lfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_rcu -->
+    <elf-symbol name='cds_lfs_pop_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_unlock -->
+    <elf-symbol name='cds_lfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push -->
+    <elf-symbol name='cds_lfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push_rcu -->
+    <elf-symbol name='cds_lfs_push_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create -->
+    <elf-symbol name='urcu_workqueue_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_completion -->
+    <elf-symbol name='urcu_workqueue_create_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_worker -->
+    <elf-symbol name='urcu_workqueue_create_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy -->
+    <elf-symbol name='urcu_workqueue_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy_completion -->
+    <elf-symbol name='urcu_workqueue_destroy_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_flush_queued_work -->
+    <elf-symbol name='urcu_workqueue_flush_queued_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_pause_worker -->
+    <elf-symbol name='urcu_workqueue_pause_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_completion -->
+    <elf-symbol name='urcu_workqueue_queue_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_work -->
+    <elf-symbol name='urcu_workqueue_queue_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_resume_worker -->
+    <elf-symbol name='urcu_workqueue_resume_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_wait_completion -->
+    <elf-symbol name='urcu_workqueue_wait_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_chunk -->
+    <elf-symbol name='cds_lfht_mm_chunk' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_mmap -->
+    <elf-symbol name='cds_lfht_mm_mmap' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_order -->
+    <elf-symbol name='cds_lfht_mm_order' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='rculfqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-2'/>
+    <!-- struct cds_lfq_node_rcu -->
+    <class-decl name='cds_lfq_node_rcu' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='35' column='1' id='type-id-3'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int cds_lfq_node_rcu::dummy -->
+        <var-decl name='dummy' type-id='type-id-1' visibility='default' filepath='../include/urcu/rculfqueue.h' line='37' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfq_queue_rcu -->
+    <class-decl name='cds_lfq_queue_rcu' size-in-bits='192' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='40' column='1' id='type-id-5'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::head -->
+        <var-decl name='head' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::tail -->
+        <var-decl name='tail' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* cds_lfq_queue_rcu::queue_call_rcu -->
+        <var-decl name='queue_call_rcu' type-id='type-id-6' visibility='default' filepath='../include/urcu/rculfqueue.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../src/urcu-call-rcu.h' line='59' column='1' id='type-id-7'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='../src/urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-9' visibility='default' filepath='../src/urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-8'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfq_node_rcu* -->
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-4'/>
+    <!-- cds_lfq_queue_rcu* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-10'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-12'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-9'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-6'/>
+    <!-- cds_lfq_node_rcu* cds_lfq_dequeue_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_dequeue_rcu' mangled-name='cds_lfq_dequeue_rcu' filepath='src/rculfqueue.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_dequeue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='56' column='1'/>
+      <!-- cds_lfq_node_rcu* -->
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <!-- void cds_lfq_enqueue_rcu(cds_lfq_queue_rcu*, cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_enqueue_rcu' mangled-name='cds_lfq_enqueue_rcu' filepath='src/rculfqueue.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_enqueue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfq_destroy_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_destroy_rcu' mangled-name='cds_lfq_destroy_rcu' filepath='src/rculfqueue.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_destroy_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='45' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfq_init_rcu(cds_lfq_queue_rcu*, void (rcu_head*, void (rcu_head*)*)*) -->
+    <function-decl name='cds_lfq_init_rcu' mangled-name='cds_lfq_init_rcu' filepath='src/rculfqueue.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_init_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='38' column='1'/>
+      <!-- parameter of type 'void (rcu_head*, void (rcu_head*)*)*' -->
+      <parameter type-id='type-id-6' name='queue_call_rcu' filepath='src/rculfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfq_node_init_rcu(cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_node_init_rcu' mangled-name='cds_lfq_node_init_rcu' filepath='src/rculfqueue.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_node_init_rcu'>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-13'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-14'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-9'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_lfs_node_rcu -->
+    <class-decl name='cds_lfs_node_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='37' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack_rcu -->
+    <class-decl name='cds_lfs_stack_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='41' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_stack_rcu::head -->
+        <var-decl name='head' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfs_node_rcu* -->
+    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_lfs_stack_rcu* -->
+    <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-18'/>
+    <!-- cds_lfs_node_rcu* cds_lfs_pop_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_pop_rcu' mangled-name='cds_lfs_pop_rcu' filepath='src/rculfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='53' column='1'/>
+      <!-- cds_lfs_node_rcu* -->
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <!-- int cds_lfs_push_rcu(cds_lfs_stack_rcu*, cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_push_rcu' mangled-name='cds_lfs_push_rcu' filepath='src/rculfstack.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='47' column='1'/>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='48' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfs_init_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_init_rcu' mangled-name='cds_lfs_init_rcu' filepath='src/rculfstack.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='42' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init_rcu(cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_node_init_rcu' mangled-name='cds_lfs_node_init_rcu' filepath='src/rculfstack.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init_rcu'>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='37' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='lfstack.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-19'/>
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-20'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='320' id='type-id-21'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-22' id='type-id-23'/>
+
+    </array-type-def>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-24'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-25'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-26'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-22'/>
+    <!-- struct cds_lfs_head -->
+    <class-decl name='cds_lfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='69' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node cds_lfs_head::node -->
+        <var-decl name='node' type-id='type-id-28' visibility='default' filepath='../include/urcu/lfstack.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_node -->
+    <class-decl name='cds_lfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='59' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node* cds_lfs_node::next -->
+        <var-decl name='next' type-id='type-id-29' visibility='default' filepath='../include/urcu/lfstack.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_lfs_stack_ptr_t -->
+    <typedef-decl name='cds_lfs_stack_ptr_t' type-id='type-id-30' filepath='../include/urcu/lfstack.h' line='90' column='1' id='type-id-31'/>
+    <!-- union {__cds_lfs_stack* _s; cds_lfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='87' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __cds_lfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-32' visibility='default' filepath='../include/urcu/lfstack.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfs_stack* s -->
+        <var-decl name='s' type-id='type-id-33' visibility='default' filepath='../include/urcu/lfstack.h' line='89' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_lfs_stack -->
+    <class-decl name='__cds_lfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='73' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* __cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack -->
+    <class-decl name='cds_lfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='77' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_lfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/lfstack.h' line='79' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__1 pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-38' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-37'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-39' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-39'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-40' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-41' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-40'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-41'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-32'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-42'/>
+    <!-- cds_lfs_head* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_lfs_node* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
+    <!-- cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-33'/>
+    <!-- cds_lfs_head* __cds_lfs_pop_all(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop_all' mangled-name='__cds_lfs_pop_all' filepath='src/lfstack.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop_all'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='88' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* __cds_lfs_pop(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop' mangled-name='__cds_lfs_pop' filepath='src/lfstack.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='83' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_unlock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_unlock' mangled-name='cds_lfs_pop_unlock' filepath='src/lfstack.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_unlock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='78' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_lock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_lock' mangled-name='cds_lfs_pop_lock' filepath='src/lfstack.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_lock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='73' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfs_head* cds_lfs_pop_all_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_all_blocking' mangled-name='cds_lfs_pop_all_blocking' filepath='src/lfstack.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='68' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* cds_lfs_pop_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_blocking' mangled-name='cds_lfs_pop_blocking' filepath='src/lfstack.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='63' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- bool cds_lfs_push(cds_lfs_stack_ptr_t, cds_lfs_node*) -->
+    <function-decl name='cds_lfs_push' mangled-name='cds_lfs_push' filepath='src/lfstack.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- bool cds_lfs_empty(cds_lfs_stack_ptr_t) -->
+    <function-decl name='cds_lfs_empty' mangled-name='cds_lfs_empty' filepath='src/lfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_empty'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='53' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- void __cds_lfs_init(__cds_lfs_stack*) -->
+    <function-decl name='__cds_lfs_init' mangled-name='__cds_lfs_init' filepath='src/lfstack.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_init'>
+      <!-- parameter of type '__cds_lfs_stack*' -->
+      <parameter type-id='type-id-32' name='s' filepath='src/lfstack.c' line='48' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_destroy(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_destroy' mangled-name='cds_lfs_destroy' filepath='src/lfstack.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_destroy'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='43' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_init(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_init' mangled-name='cds_lfs_init' filepath='src/lfstack.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init(cds_lfs_node*) -->
+    <function-decl name='cds_lfs_node_init' mangled-name='cds_lfs_node_init' filepath='src/lfstack.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init'>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='workqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct urcu_workqueue -->
+    <class-decl name='urcu_workqueue' size-in-bits='2048' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='54' column='1' id='type-id-43'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail urcu_workqueue::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-44' visibility='default' filepath='src/workqueue.c' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head urcu_workqueue::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-45' visibility='default' filepath='src/workqueue.c' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int urcu_workqueue::flags -->
+        <var-decl name='flags' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t urcu_workqueue::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int urcu_workqueue::qlen -->
+        <var-decl name='qlen' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t urcu_workqueue::tid -->
+        <var-decl name='tid' type-id='type-id-47' visibility='default' filepath='src/workqueue.c' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int urcu_workqueue::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int urcu_workqueue::loop_count -->
+        <var-decl name='loop_count' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void* urcu_workqueue::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='src/workqueue.c' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::grace_period_fct -->
+        <var-decl name='grace_period_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::initialize_worker_fct -->
+        <var-decl name='initialize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::finalize_worker_fct -->
+        <var-decl name='finalize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_pause_fct -->
+        <var-decl name='worker_before_pause_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_resume_fct -->
+        <var-decl name='worker_after_resume_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_wait_fct -->
+        <var-decl name='worker_before_wait_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_wake_up_fct -->
+        <var-decl name='worker_after_wake_up_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='76' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-45'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-8' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-50' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-46'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-1' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-50'/>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-22' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-47'/>
+    <!-- struct urcu_workqueue_completion -->
+    <class-decl name='urcu_workqueue_completion' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='79' column='1' id='type-id-51'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int urcu_workqueue_completion::barrier_count -->
+        <var-decl name='barrier_count' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- int32_t urcu_workqueue_completion::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- urcu_ref urcu_workqueue_completion::ref -->
+        <var-decl name='ref' type-id='type-id-52' visibility='default' filepath='src/workqueue.c' line='82' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_ref -->
+    <class-decl name='urcu_ref' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/ref.h' line='23' column='1' id='type-id-52'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- long int urcu_ref::refcount -->
+        <var-decl name='refcount' type-id='type-id-24' visibility='default' filepath='../include/urcu/ref.h' line='24' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_work -->
+    <class-decl name='urcu_work' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.h' line='53' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node urcu_work::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='src/workqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (urcu_work*)* urcu_work::func -->
+        <var-decl name='func' type-id='type-id-54' visibility='default' filepath='src/workqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- urcu_work* -->
+    <pointer-type-def type-id='type-id-53' size-in-bits='64' id='type-id-55'/>
+    <!-- urcu_workqueue* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-56'/>
+    <!-- urcu_workqueue_completion* -->
+    <pointer-type-def type-id='type-id-51' size-in-bits='64' id='type-id-57'/>
+    <!-- void (urcu_work*)* -->
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-54'/>
+    <!-- void (urcu_workqueue*, void*)* -->
+    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-49'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-48'/>
+    <!-- void urcu_workqueue_create_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_create_worker' mangled-name='urcu_workqueue_create_worker' filepath='src/workqueue.c' line='458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='458' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_resume_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_resume_worker' mangled-name='urcu_workqueue_resume_worker' filepath='src/workqueue.c' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_resume_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='451' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_pause_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_pause_worker' mangled-name='urcu_workqueue_pause_worker' filepath='src/workqueue.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_pause_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='440' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_flush_queued_work(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_flush_queued_work' mangled-name='urcu_workqueue_flush_queued_work' filepath='src/workqueue.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_flush_queued_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='427' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_completion(urcu_workqueue*, urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_queue_completion' mangled-name='urcu_workqueue_queue_completion' filepath='src/workqueue.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_completion'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='410' column='1'/>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='411' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_wait_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_wait_completion' mangled-name='urcu_workqueue_wait_completion' filepath='src/workqueue.c' line='397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_wait_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='397' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_destroy_completion' mangled-name='urcu_workqueue_destroy_completion' filepath='src/workqueue.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='392' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue_completion* urcu_workqueue_create_completion() -->
+    <function-decl name='urcu_workqueue_create_completion' mangled-name='urcu_workqueue_create_completion' filepath='src/workqueue.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_completion'>
+      <!-- urcu_workqueue_completion* -->
+      <return type-id='type-id-57'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_work(urcu_workqueue*, urcu_work*, void (urcu_work*)*) -->
+    <function-decl name='urcu_workqueue_queue_work' mangled-name='urcu_workqueue_queue_work' filepath='src/workqueue.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='346' column='1'/>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55' name='work' filepath='src/workqueue.c' line='347' column='1'/>
+      <!-- parameter of type 'void (urcu_work*)*' -->
+      <parameter type-id='type-id-54' name='func' filepath='src/workqueue.c' line='348' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_destroy' mangled-name='urcu_workqueue_destroy' filepath='src/workqueue.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='334' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue* urcu_workqueue_create(unsigned long int, int, void*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*) -->
+    <function-decl name='urcu_workqueue_create' mangled-name='urcu_workqueue_create' filepath='src/workqueue.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='flags' filepath='src/workqueue.c' line='269' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='cpu_affinity' filepath='src/workqueue.c' line='270' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='priv' filepath='src/workqueue.c' line='270' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='grace_period_fct' filepath='src/workqueue.c' line='271' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='initialize_worker_fct' filepath='src/workqueue.c' line='272' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='finalize_worker_fct' filepath='src/workqueue.c' line='273' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_wait_fct' filepath='src/workqueue.c' line='274' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_wake_up_fct' filepath='src/workqueue.c' line='275' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_pause_fct' filepath='src/workqueue.c' line='276' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_resume_fct' filepath='src/workqueue.c' line='277' column='1'/>
+      <!-- urcu_workqueue* -->
+      <return type-id='type-id-56'/>
+    </function-decl>
+    <!-- void (urcu_work*) -->
+    <function-type size-in-bits='64' id='type-id-58'>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_workqueue*, void*) -->
+    <function-type size-in-bits='64' id='type-id-59'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash.c' comp-dir-path='src' language='LANG_C99'>
+
+
+
+    <!-- cds_lfht_node*[64] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='4096' id='type-id-61'>
+      <!-- <anonymous range>[64] -->
+      <subrange length='64' type-id='type-id-22' id='type-id-62'/>
+
+    </array-type-def>
+    <!-- cds_lfht_node*[] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='infinite' id='type-id-63'>
+      <!-- <anonymous range>[] -->
+      <subrange length='infinite' type-id='type-id-22' id='type-id-64'/>
+
+    </array-type-def>
+    <!-- char[56] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='448' id='type-id-65'>
+      <!-- <anonymous range>[56] -->
+      <subrange length='56' type-id='type-id-22' id='type-id-66'/>
+
+    </array-type-def>
+    <!-- struct cds_lfht -->
+    <class-decl name='cds_lfht' size-in-bits='5248' is-struct='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='68' column='1' id='type-id-67'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int cds_lfht::max_nr_buckets -->
+        <var-decl name='max_nr_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- const cds_lfht_mm_type* cds_lfht::mm -->
+        <var-decl name='mm' type-id='type-id-68' visibility='default' filepath='../src/rculfhash-internal.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- const rcu_flavor_struct* cds_lfht::flavor -->
+        <var-decl name='flavor' type-id='type-id-69' visibility='default' filepath='../src/rculfhash-internal.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- long int cds_lfht::count -->
+        <var-decl name='count' type-id='type-id-24' visibility='default' filepath='../src/rculfhash-internal.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- pthread_mutex_t cds_lfht::resize_mutex -->
+        <var-decl name='resize_mutex' type-id='type-id-37' visibility='default' filepath='../src/rculfhash-internal.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- pthread_attr_t* cds_lfht::resize_attr -->
+        <var-decl name='resize_attr' type-id='type-id-70' visibility='default' filepath='../src/rculfhash-internal.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- unsigned int cds_lfht::in_progress_destroy -->
+        <var-decl name='in_progress_destroy' type-id='type-id-26' visibility='default' filepath='../src/rculfhash-internal.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- unsigned long int cds_lfht::resize_target -->
+        <var-decl name='resize_target' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- int cds_lfht::resize_initiated -->
+        <var-decl name='resize_initiated' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='800'>
+        <!-- int cds_lfht::flags -->
+        <var-decl name='flags' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- unsigned long int cds_lfht::min_alloc_buckets_order -->
+        <var-decl name='min_alloc_buckets_order' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- unsigned long int cds_lfht::min_nr_alloc_buckets -->
+        <var-decl name='min_nr_alloc_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- ht_items_count* cds_lfht::split_count -->
+        <var-decl name='split_count' type-id='type-id-71' visibility='default' filepath='../src/rculfhash-internal.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- unsigned long int cds_lfht::size -->
+        <var-decl name='size' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='100' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../src/rculfhash-internal.h' line='105' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+        <var-decl name='' type-id='type-id-73' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_mm_type -->
+    <class-decl name='cds_lfht_mm_type' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='105' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht* (unsigned long int, unsigned long int)* cds_lfht_mm_type::alloc_cds_lfht -->
+        <var-decl name='alloc_cds_lfht' type-id='type-id-75' visibility='default' filepath='../include/urcu/rculfhash.h' line='106' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* cds_lfht_mm_type::alloc_bucket_table -->
+        <var-decl name='alloc_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='108' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void ()* cds_lfht_mm_type::free_bucket_table -->
+        <var-decl name='free_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='109' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht_mm_type::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../include/urcu/rculfhash.h' line='110' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_node -->
+    <class-decl name='cds_lfht_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='60' column='1' id='type-id-77'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_node::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int cds_lfht_node::reverse_hash -->
+        <var-decl name='reverse_hash' type-id='type-id-22' visibility='default' filepath='../include/urcu/rculfhash.h' line='62' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='40' column='1' id='type-id-78'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-80' visibility='default' filepath='../src/urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-6' visibility='default' filepath='../src/urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-81' visibility='default' filepath='../src/urcu-flavor.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-79' visibility='default' filepath='../src/urcu-flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../src/urcu-flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../src/urcu-flavor.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='30' column='1' id='type-id-83'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-84' visibility='default' filepath='../src/urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-84' visibility='default' filepath='../src/urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-84' visibility='default' filepath='../src/urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='../src/urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef pthread_attr_t pthread_attr_t -->
+    <typedef-decl name='pthread_attr_t' type-id='type-id-85' filepath='/usr/include/bits/pthreadtypes.h' line='62' column='1' id='type-id-86'/>
+    <!-- union pthread_attr_t -->
+    <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='56' column='1' id='type-id-85'>
+      <data-member access='private'>
+        <!-- char pthread_attr_t::__size[56] -->
+        <var-decl name='__size' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int pthread_attr_t::__align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='59' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct ht_items_count -->
+    <class-decl name='ht_items_count' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/rculfhash.c' line='337' column='1' id='type-id-87'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int ht_items_count::add -->
+        <var-decl name='add' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='338' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int ht_items_count::del -->
+        <var-decl name='del' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='338' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='111' column='1' id='type-id-73'>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_order[64] -->
+        <var-decl name='tbl_order' type-id='type-id-61' visibility='default' filepath='../src/rculfhash-internal.h' line='120' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_chunk[] -->
+        <var-decl name='tbl_chunk' type-id='type-id-63' visibility='default' filepath='../src/rculfhash-internal.h' line='132' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_mmap -->
+        <var-decl name='tbl_mmap' type-id='type-id-60' visibility='default' filepath='../src/rculfhash-internal.h' line='138' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct cds_lfht_iter -->
+    <class-decl name='cds_lfht_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='66' column='1' id='type-id-88'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_iter::node -->
+        <var-decl name='node' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfht_node* cds_lfht_iter::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='67' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef int (cds_lfht_node*, void*)* cds_lfht_match_fct -->
+    <typedef-decl name='cds_lfht_match_fct' type-id='type-id-89' filepath='../include/urcu/rculfhash.h' line='83' column='1' id='type-id-90'/>
+    <!-- typedef __uint32_t uint32_t -->
+    <typedef-decl name='uint32_t' type-id='type-id-91' filepath='/usr/include/bits/stdint-uintn.h' line='26' column='1' id='type-id-92'/>
+    <!-- typedef unsigned int __uint32_t -->
+    <typedef-decl name='__uint32_t' type-id='type-id-26' filepath='/usr/include/bits/types.h' line='42' column='1' id='type-id-91'/>
+    <!-- cds_lfht* -->
+    <pointer-type-def type-id='type-id-67' size-in-bits='64' id='type-id-93'/>
+    <!-- cds_lfht* (unsigned long int, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-94' size-in-bits='64' id='type-id-75'/>
+    <!-- cds_lfht_iter* -->
+    <pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-95'/>
+    <!-- cds_lfht_node* -->
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-60'/>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-72'/>
+    <!-- const cds_lfht_mm_type -->
+    <qualified-type-def type-id='type-id-74' const='yes' id='type-id-97'/>
+    <!-- const cds_lfht_mm_type* -->
+    <pointer-type-def type-id='type-id-97' size-in-bits='64' id='type-id-68'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-78' const='yes' id='type-id-98'/>
+    <!-- const rcu_flavor_struct* -->
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-69'/>
+    <!-- ht_items_count* -->
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-71'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-99' size-in-bits='64' id='type-id-80'/>
+    <!-- int (cds_lfht_node*, void*)* -->
+    <pointer-type-def type-id='type-id-100' size-in-bits='64' id='type-id-89'/>
+    <!-- long int* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-101'/>
+    <!-- pthread_attr_t* -->
+    <pointer-type-def type-id='type-id-86' size-in-bits='64' id='type-id-70'/>
+    <!-- pthread_attr_t** -->
+    <pointer-type-def type-id='type-id-70' size-in-bits='64' id='type-id-102'/>
+    <!-- unsigned long int* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-103'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-104'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-105' size-in-bits='64' id='type-id-79'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-76'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-82'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-108' size-in-bits='64' id='type-id-81'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-109' size-in-bits='64' id='type-id-84'/>
+    <!-- void cds_lfht_resize(cds_lfht*, unsigned long int) -->
+    <function-decl name='cds_lfht_resize' mangled-name='cds_lfht_resize' filepath='src/rculfhash.c' line='1978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_resize'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1978' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size' filepath='src/rculfhash.c' line='1978' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_count_nodes(cds_lfht*, long int*, unsigned long int*, long int*) -->
+    <function-decl name='cds_lfht_count_nodes' mangled-name='cds_lfht_count_nodes' filepath='src/rculfhash.c' line='1856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_count_nodes'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1856' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-101' name='approx_before' filepath='src/rculfhash.c' line='1857' column='1'/>
+      <!-- parameter of type 'unsigned long int*' -->
+      <parameter type-id='type-id-103' name='count' filepath='src/rculfhash.c' line='1858' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-101' name='approx_after' filepath='src/rculfhash.c' line='1859' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfht_destroy(cds_lfht*, pthread_attr_t**) -->
+    <function-decl name='cds_lfht_destroy' mangled-name='cds_lfht_destroy' filepath='src/rculfhash.c' line='1831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_destroy'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1831' column='1'/>
+      <!-- parameter of type 'pthread_attr_t**' -->
+      <parameter type-id='type-id-102' name='attr' filepath='src/rculfhash.c' line='1831' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_is_node_deleted(cds_lfht_node*) -->
+    <function-decl name='cds_lfht_is_node_deleted' mangled-name='cds_lfht_is_node_deleted' filepath='src/rculfhash.c' line='1788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_is_node_deleted'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1788' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_del(cds_lfht*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_del' mangled-name='cds_lfht_del' filepath='src/rculfhash.c' line='1772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_del'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1772' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1772' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_replace(cds_lfht*, cds_lfht_iter*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_replace' mangled-name='cds_lfht_replace' filepath='src/rculfhash.c' line='1751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1751' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-95' name='old_iter' filepath='src/rculfhash.c' line='1752' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1753' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1754' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1755' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='new_node' filepath='src/rculfhash.c' line='1756' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_replace(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_replace' mangled-name='cds_lfht_add_replace' filepath='src/rculfhash.c' line='1728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1728' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1729' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1730' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1731' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1732' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_unique(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_unique' mangled-name='cds_lfht_add_unique' filepath='src/rculfhash.c' line='1711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_unique'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1711' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1712' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1713' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1714' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1715' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- void cds_lfht_add(cds_lfht*, unsigned long int, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add' mangled-name='cds_lfht_add' filepath='src/rculfhash.c' line='1700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1700' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1700' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1701' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_first(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_first' mangled-name='cds_lfht_first' filepath='src/rculfhash.c' line='1690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_first'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1690' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-95' name='iter' filepath='src/rculfhash.c' line='1690' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next' mangled-name='cds_lfht_next' filepath='src/rculfhash.c' line='1668' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1668' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-95' name='iter' filepath='src/rculfhash.c' line='1668' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next_duplicate(cds_lfht*, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next_duplicate' mangled-name='cds_lfht_next_duplicate' filepath='src/rculfhash.c' line='1635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next_duplicate'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1635' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1635' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1636' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-95' name='iter' filepath='src/rculfhash.c' line='1636' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_lookup(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_lookup' mangled-name='cds_lfht_lookup' filepath='src/rculfhash.c' line='1597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_lookup'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht' filepath='src/rculfhash.c' line='1597' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1597' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1598' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1598' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-95' name='iter' filepath='src/rculfhash.c' line='1599' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfht* _cds_lfht_new(unsigned long int, unsigned long int, unsigned long int, int, const cds_lfht_mm_type*, const rcu_flavor_struct*, pthread_attr_t*) -->
+    <function-decl name='_cds_lfht_new' mangled-name='_cds_lfht_new' filepath='src/rculfhash.c' line='1520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_cds_lfht_new'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='init_size' filepath='src/rculfhash.c' line='1520' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='min_nr_alloc_buckets' filepath='src/rculfhash.c' line='1521' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='max_nr_buckets' filepath='src/rculfhash.c' line='1522' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='flags' filepath='src/rculfhash.c' line='1523' column='1'/>
+      <!-- parameter of type 'const cds_lfht_mm_type*' -->
+      <parameter type-id='type-id-68' name='mm' filepath='src/rculfhash.c' line='1524' column='1'/>
+      <!-- parameter of type 'const rcu_flavor_struct*' -->
+      <parameter type-id='type-id-69' name='flavor' filepath='src/rculfhash.c' line='1525' column='1'/>
+      <!-- parameter of type 'pthread_attr_t*' -->
+      <parameter type-id='type-id-70' name='attr' filepath='src/rculfhash.c' line='1526' column='1'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-93'/>
+    </function-decl>
+    <!-- int cds_lfht_get_count_order_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_get_count_order_ulong' mangled-name='cds_lfht_get_count_order_ulong' filepath='src/rculfhash.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_get_count_order_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='574' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_get_count_order_u32(uint32_t) -->
+    <function-decl name='cds_lfht_get_count_order_u32' mangled-name='cds_lfht_get_count_order_u32' filepath='src/rculfhash.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_get_count_order_u32'>
+      <!-- parameter of type 'typedef uint32_t' -->
+      <parameter type-id='type-id-92' name='x' filepath='src/rculfhash.c' line='562' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- unsigned int cds_lfht_fls_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_fls_ulong' mangled-name='cds_lfht_fls_ulong' filepath='src/rculfhash.c' line='549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_fls_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='549' column='1'/>
+      <!-- unsigned int -->
+      <return type-id='type-id-26'/>
+    </function-decl>
+    <!-- cds_lfht* (unsigned long int, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-94'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-93'/>
+    </function-type>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-96'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-type>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-99'>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- int (cds_lfht_node*, void*) -->
+    <function-type size-in-bits='64' id='type-id-100'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-105'>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-106'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-93' name='ht'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-107'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-104'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-108'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-84'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-109'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-order.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_order -->
+    <var-decl name='cds_lfht_mm_order' type-id='type-id-97' mangled-name='cds_lfht_mm_order' visibility='default' filepath='../include/urcu/rculfhash.h' line='114' column='1' elf-symbol-id='cds_lfht_mm_order'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-chunk.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_chunk -->
+    <var-decl name='cds_lfht_mm_chunk' type-id='type-id-97' mangled-name='cds_lfht_mm_chunk' visibility='default' filepath='../include/urcu/rculfhash.h' line='115' column='1' elf-symbol-id='cds_lfht_mm_chunk'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-mmap.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_mmap -->
+    <var-decl name='cds_lfht_mm_mmap' type-id='type-id-97' mangled-name='cds_lfht_mm_mmap' visibility='default' filepath='../include/urcu/rculfhash.h' line='116' column='1' elf-symbol-id='cds_lfht_mm_mmap'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='384' id='type-id-110'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-22' id='type-id-111'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-112'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-113'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-26' size-in-bits='64' id='type-id-114'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-22' id='type-id-115'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-116' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-117'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-116'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-118' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-110' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-112' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-118'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-119' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-119'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-113' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-120' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-120'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-121'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-122' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-123' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-122'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-123'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-121' const='yes' id='type-id-124'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-124' size-in-bits='64' id='type-id-125'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-126'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-37' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-117' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-125' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-125' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-common.so.6.xml b/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-common.so.6.xml
new file mode 100644 (file)
index 0000000..07daf21
--- /dev/null
@@ -0,0 +1,901 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-common.so.6'>
+  <elf-needed>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_blocking -->
+    <elf-symbol name='__cds_wfcq_first_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_nonblocking -->
+    <elf-symbol name='__cds_wfcq_first_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_init -->
+    <elf-symbol name='__cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_blocking -->
+    <elf-symbol name='__cds_wfcq_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_nonblocking -->
+    <elf-symbol name='__cds_wfcq_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_blocking -->
+    <elf-symbol name='__cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_nonblocking -->
+    <elf-symbol name='__cds_wfcq_splice_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_init -->
+    <elf-symbol name='__cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_all -->
+    <elf-symbol name='__cds_wfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_blocking -->
+    <elf-symbol name='__cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_lock -->
+    <elf-symbol name='cds_wfcq_dequeue_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_unlock -->
+    <elf-symbol name='cds_wfcq_dequeue_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_destroy -->
+    <elf-symbol name='cds_wfcq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_empty -->
+    <elf-symbol name='cds_wfcq_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_enqueue -->
+    <elf-symbol name='cds_wfcq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_init -->
+    <elf-symbol name='cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_node_init -->
+    <elf-symbol name='cds_wfcq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_splice_blocking -->
+    <elf-symbol name='cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_dequeue_blocking -->
+    <elf-symbol name='cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_destroy -->
+    <elf-symbol name='cds_wfq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_enqueue -->
+    <elf-symbol name='cds_wfq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_init -->
+    <elf-symbol name='cds_wfq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_node_init -->
+    <elf-symbol name='cds_wfq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_destroy -->
+    <elf-symbol name='cds_wfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_empty -->
+    <elf-symbol name='cds_wfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_first -->
+    <elf-symbol name='cds_wfs_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_init -->
+    <elf-symbol name='cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_blocking -->
+    <elf-symbol name='cds_wfs_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_nonblocking -->
+    <elf-symbol name='cds_wfs_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_node_init -->
+    <elf-symbol name='cds_wfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_all_blocking -->
+    <elf-symbol name='cds_wfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_blocking -->
+    <elf-symbol name='cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_lock -->
+    <elf-symbol name='cds_wfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_unlock -->
+    <elf-symbol name='cds_wfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_push -->
+    <elf-symbol name='cds_wfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='wfqueue.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct cds_wfq_node -->
+    <class-decl name='cds_wfq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='48' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_node::next -->
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='49' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfq_queue -->
+    <class-decl name='cds_wfq_queue' size-in-bits='512' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='52' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_queue::head -->
+        <var-decl name='head' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfq_node** cds_wfq_queue::tail -->
+        <var-decl name='tail' type-id='type-id-13' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- cds_wfq_node cds_wfq_queue::dummy -->
+        <var-decl name='dummy' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- pthread_mutex_t cds_wfq_queue::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-15' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-14'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-15'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-16' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-16'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-17' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-18' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-17'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-18'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-19'/>
+    <!-- cds_wfq_node* -->
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfq_node** -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-13'/>
+    <!-- cds_wfq_queue* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-20'/>
+    <!-- cds_wfq_node* cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_dequeue_blocking' mangled-name='cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='59' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- cds_wfq_node* __cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='__cds_wfq_dequeue_blocking' mangled-name='__cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='54' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- void cds_wfq_enqueue(cds_wfq_queue*, cds_wfq_node*) -->
+    <function-decl name='cds_wfq_enqueue' mangled-name='cds_wfq_enqueue' filepath='src/wfqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_enqueue'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_destroy(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_destroy' mangled-name='cds_wfq_destroy' filepath='src/wfqueue.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_destroy'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_init(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_init' mangled-name='cds_wfq_init' filepath='src/wfqueue.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_init'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_node_init(cds_wfq_node*) -->
+    <function-decl name='cds_wfq_node_init' mangled-name='cds_wfq_node_init' filepath='src/wfqueue.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_node_init'>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='34' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfcqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-21'/>
+    <!-- unnamed&#45;enum&#45;underlying&#45;type -->
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-22'/>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfcq_head_ptr_t -->
+    <typedef-decl name='cds_wfcq_head_ptr_t' type-id='type-id-25' filepath='../include/urcu/wfcqueue.h' line='86' column='1' id='type-id-26'/>
+    <!-- union {__cds_wfcq_head* _h; cds_wfcq_head* h;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='83' column='1' id='type-id-25'>
+      <data-member access='private'>
+        <!-- __cds_wfcq_head* _h -->
+        <var-decl name='_h' type-id='type-id-27' visibility='default' filepath='../include/urcu/wfcqueue.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfcq_head* h -->
+        <var-decl name='h' type-id='type-id-28' visibility='default' filepath='../include/urcu/wfcqueue.h' line='85' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfcq_head -->
+    <class-decl name='__cds_wfcq_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='68' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node __cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- enum cds_wfcq_ret -->
+    <enum-decl name='cds_wfcq_ret' filepath='../include/urcu/wfcqueue.h' line='48' column='1' id='type-id-32'>
+      <underlying-type type-id='type-id-22'/>
+      <enumerator name='CDS_WFCQ_RET_WOULDBLOCK' value='-1'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_EMPTY' value='0'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_NON_EMPTY' value='1'/>
+      <enumerator name='CDS_WFCQ_RET_SRC_EMPTY' value='2'/>
+    </enum-decl>
+    <!-- __cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-27'/>
+    <!-- cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-28'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-24'/>
+    <!-- cds_wfcq_tail* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-33'/>
+    <!-- int* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-34'/>
+    <!-- cds_wfcq_node* __cds_wfcq_next_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_nonblocking' mangled-name='__cds_wfcq_next_nonblocking' filepath='src/wfcqueue.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='179' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='180' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='181' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_next_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_blocking' mangled-name='__cds_wfcq_next_blocking' filepath='src/wfcqueue.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='171' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='172' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='173' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_nonblocking' mangled-name='__cds_wfcq_first_nonblocking' filepath='src/wfcqueue.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='164' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='165' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_blocking' mangled-name='__cds_wfcq_first_blocking' filepath='src/wfcqueue.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='157' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='158' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_nonblocking' mangled-name='__cds_wfcq_splice_nonblocking' filepath='src/wfcqueue.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='147' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='148' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='149' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='150' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_blocking' mangled-name='__cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='137' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='138' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='139' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='140' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_nonblocking' mangled-name='__cds_wfcq_dequeue_with_state_nonblocking' filepath='src/wfcqueue.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='129' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='130' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='131' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_nonblocking' mangled-name='__cds_wfcq_dequeue_nonblocking' filepath='src/wfcqueue.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='122' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='123' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_blocking' mangled-name='__cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='114' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='115' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='116' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_blocking' mangled-name='__cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='107' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='108' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret cds_wfcq_splice_blocking(cds_wfcq_head*, cds_wfcq_tail*, cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_splice_blocking' mangled-name='cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='dest_q_head' filepath='src/wfcqueue.c' line='97' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='98' column='1'/>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='src_q_head' filepath='src/wfcqueue.c' line='99' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='100' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head*, cds_wfcq_tail*, int*) -->
+    <function-decl name='cds_wfcq_dequeue_with_state_blocking' mangled-name='cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='89' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='90' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='91' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_blocking(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_blocking' mangled-name='cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='82' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='83' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_unlock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_unlock' mangled-name='cds_wfcq_dequeue_unlock' filepath='src/wfcqueue.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_unlock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='75' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='76' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_lock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_lock' mangled-name='cds_wfcq_dequeue_lock' filepath='src/wfcqueue.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_lock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='69' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='70' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- bool cds_wfcq_enqueue(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_enqueue' mangled-name='cds_wfcq_enqueue' filepath='src/wfcqueue.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_enqueue'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='62' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='63' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='64' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- bool cds_wfcq_empty(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_empty' mangled-name='cds_wfcq_empty' filepath='src/wfcqueue.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_empty'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='55' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='56' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfcq_init(__cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_init' mangled-name='__cds_wfcq_init' filepath='src/wfcqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_init'>
+      <!-- parameter of type '__cds_wfcq_head*' -->
+      <parameter type-id='type-id-27' name='head' filepath='src/wfcqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_destroy(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_destroy' mangled-name='cds_wfcq_destroy' filepath='src/wfcqueue.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_destroy'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='43' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_init(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_init' mangled-name='cds_wfcq_init' filepath='src/wfcqueue.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_init'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='37' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_node_init(cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_node_init' mangled-name='cds_wfcq_node_init' filepath='src/wfcqueue.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_node_init'>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='32' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_wfs_head -->
+    <class-decl name='cds_wfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='82' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node cds_wfs_head::node -->
+        <var-decl name='node' type-id='type-id-36' visibility='default' filepath='../include/urcu/wfstack.h' line='83' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_node -->
+    <class-decl name='cds_wfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='72' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node* cds_wfs_node::next -->
+        <var-decl name='next' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfstack.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfs_stack_ptr_t -->
+    <typedef-decl name='cds_wfs_stack_ptr_t' type-id='type-id-38' filepath='../include/urcu/wfstack.h' line='103' column='1' id='type-id-39'/>
+    <!-- union {__cds_wfs_stack* _s; cds_wfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='100' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __cds_wfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-40' visibility='default' filepath='../include/urcu/wfstack.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfs_stack* s -->
+        <var-decl name='s' type-id='type-id-41' visibility='default' filepath='../include/urcu/wfstack.h' line='102' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfs_stack -->
+    <class-decl name='__cds_wfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='86' column='1' id='type-id-42'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* __cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='87' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_stack -->
+    <class-decl name='cds_wfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='90' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfstack.h' line='92' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-40'/>
+    <!-- cds_wfs_head* -->
+    <pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-43'/>
+    <!-- cds_wfs_node* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-41'/>
+    <!-- cds_wfs_head* __cds_wfs_pop_all(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_all' mangled-name='__cds_wfs_pop_all' filepath='src/wfstack.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_all'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='126' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_nonblocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_nonblocking' mangled-name='__cds_wfs_pop_with_state_nonblocking' filepath='src/wfstack.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='120' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='121' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_nonblocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_nonblocking' mangled-name='__cds_wfs_pop_nonblocking' filepath='src/wfstack.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='114' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_blocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_blocking' mangled-name='__cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='108' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='109' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_blocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_blocking' mangled-name='__cds_wfs_pop_blocking' filepath='src/wfstack.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='102' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_unlock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_unlock' mangled-name='cds_wfs_pop_unlock' filepath='src/wfstack.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_unlock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='97' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_lock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_lock' mangled-name='cds_wfs_pop_lock' filepath='src/wfstack.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_lock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='92' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_nonblocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_nonblocking' mangled-name='cds_wfs_next_nonblocking' filepath='src/wfstack.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_nonblocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='87' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_blocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_blocking' mangled-name='cds_wfs_next_blocking' filepath='src/wfstack.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_blocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='82' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_first(cds_wfs_head*) -->
+    <function-decl name='cds_wfs_first' mangled-name='cds_wfs_first' filepath='src/wfstack.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_first'>
+      <!-- parameter of type 'cds_wfs_head*' -->
+      <parameter type-id='type-id-43' name='head' filepath='src/wfstack.c' line='77' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_head* cds_wfs_pop_all_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_all_blocking' mangled-name='cds_wfs_pop_all_blocking' filepath='src/wfstack.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='72' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_with_state_blocking(cds_wfs_stack*, int*) -->
+    <function-decl name='cds_wfs_pop_with_state_blocking' mangled-name='cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_blocking' mangled-name='cds_wfs_pop_blocking' filepath='src/wfstack.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='61' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- int cds_wfs_push(cds_wfs_stack_ptr_t, cds_wfs_node*) -->
+    <function-decl name='cds_wfs_push' mangled-name='cds_wfs_push' filepath='src/wfstack.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_push'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- bool cds_wfs_empty(cds_wfs_stack_ptr_t) -->
+    <function-decl name='cds_wfs_empty' mangled-name='cds_wfs_empty' filepath='src/wfstack.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_empty'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='51' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfs_init(__cds_wfs_stack*) -->
+    <function-decl name='__cds_wfs_init' mangled-name='__cds_wfs_init' filepath='src/wfstack.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_init'>
+      <!-- parameter of type '__cds_wfs_stack*' -->
+      <parameter type-id='type-id-40' name='s' filepath='src/wfstack.c' line='46' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_destroy(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_destroy' mangled-name='cds_wfs_destroy' filepath='src/wfstack.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_destroy'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='41' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_init(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_init' mangled-name='cds_wfs_init' filepath='src/wfstack.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_init'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='36' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_node_init(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_node_init' mangled-name='cds_wfs_node_init' filepath='src/wfstack.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_node_init'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='31' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-45'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-46'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-47'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-48'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-49'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-50'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-51' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-52'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-51'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-45' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-54' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-54'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-48' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-56' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-57'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-56'/>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-57' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-14' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-52' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml b/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml
new file mode 100644 (file)
index 0000000..f28b67c
--- /dev/null
@@ -0,0 +1,843 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-mb.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_mb -->
+    <elf-symbol name='call_rcu_after_fork_child_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_mb -->
+    <elf-symbol name='call_rcu_after_fork_parent_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_mb -->
+    <elf-symbol name='call_rcu_before_fork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_mb -->
+    <elf-symbol name='call_rcu_data_free_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_mb -->
+    <elf-symbol name='call_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_mb -->
+    <elf-symbol name='create_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_mb -->
+    <elf-symbol name='defer_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_mb -->
+    <elf-symbol name='get_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_mb -->
+    <elf-symbol name='get_call_rcu_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_mb -->
+    <elf-symbol name='get_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_mb -->
+    <elf-symbol name='get_default_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_mb -->
+    <elf-symbol name='get_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_mb -->
+    <elf-symbol name='rcu_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_mb -->
+    <elf-symbol name='rcu_defer_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_mb -->
+    <elf-symbol name='rcu_defer_barrier_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_mb -->
+    <elf-symbol name='rcu_defer_exit_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_mb -->
+    <elf-symbol name='rcu_defer_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_mb -->
+    <elf-symbol name='rcu_defer_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_mb -->
+    <elf-symbol name='rcu_init_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_mb -->
+    <elf-symbol name='rcu_read_lock_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_mb -->
+    <elf-symbol name='rcu_read_ongoing_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_mb -->
+    <elf-symbol name='rcu_read_unlock_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_mb -->
+    <elf-symbol name='rcu_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_mb -->
+    <elf-symbol name='rcu_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_mb -->
+    <elf-symbol name='set_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_mb -->
+    <elf-symbol name='set_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_mb -->
+    <elf-symbol name='synchronize_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_mb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_mb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_mb -->
+    <elf-symbol name='rcu_flavor_mb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_mb -->
+    <elf-symbol name='rcu_gp_mb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_mb -->
+    <elf-symbol name='rcu_reader_mb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_mb -->
+    <class-decl name='rcu_gp_mb' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu.h' line='119' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_mb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu.h' line='127' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_mb::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu.h' line='129' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_mb -->
+    <class-decl name='rcu_reader_mb' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu.h' line='134' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_mb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu.h' line='136' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char rcu_reader_mb::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu.h' line='137' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_mb::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu.h' line='139' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_mb::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_mb::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu.h' line='142' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='40' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../src/urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../src/urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../src/urcu-flavor.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../src/urcu-call-rcu.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../src/urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../src/urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='30' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../src/urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='52' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- rcu_gp_mb rcu_gp_mb -->
+    <var-decl name='rcu_gp_mb' type-id='type-id-10' mangled-name='rcu_gp_mb' visibility='default' filepath='../include/urcu/static/urcu.h' line='132' column='1' elf-symbol-id='rcu_gp_mb'/>
+    <!-- rcu_reader_mb rcu_reader_mb -->
+    <var-decl name='rcu_reader_mb' type-id='type-id-13' mangled-name='rcu_reader_mb' visibility='default' filepath='../include/urcu/static/urcu.h' line='145' column='1' elf-symbol-id='rcu_reader_mb'/>
+    <!-- const rcu_flavor_struct rcu_flavor_mb -->
+    <var-decl name='rcu_flavor_mb' type-id='type-id-40' mangled-name='rcu_flavor_mb' visibility='default' filepath='../src/urcu-flavor.h' line='79' column='1' elf-symbol-id='rcu_flavor_mb'/>
+    <!-- void rcu_defer_exit_mb() -->
+    <function-decl name='rcu_defer_exit_mb' mangled-name='rcu_defer_exit_mb' filepath='src/urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_mb() -->
+    <function-decl name='rcu_defer_unregister_thread_mb' mangled-name='rcu_defer_unregister_thread_mb' filepath='src/urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_mb() -->
+    <function-decl name='rcu_defer_register_thread_mb' mangled-name='rcu_defer_register_thread_mb' filepath='src/urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_mb(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_mb' mangled-name='defer_rcu_mb' filepath='src/urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_mb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_mb() -->
+    <function-decl name='rcu_defer_barrier_mb' mangled-name='rcu_defer_barrier_mb' filepath='src/urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_mb() -->
+    <function-decl name='rcu_defer_barrier_thread_mb' mangled-name='rcu_defer_barrier_thread_mb' filepath='src/urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_unregister_rculfhash_atfork_mb(urcu_atfork*) -->
+    <function-decl name='urcu_unregister_rculfhash_atfork_mb' mangled-name='urcu_unregister_rculfhash_atfork_mb' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_mb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_register_rculfhash_atfork_mb(urcu_atfork*) -->
+    <function-decl name='urcu_register_rculfhash_atfork_mb' mangled-name='urcu_register_rculfhash_atfork_mb' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_mb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_mb() -->
+    <function-decl name='call_rcu_after_fork_child_mb' mangled-name='call_rcu_after_fork_child_mb' filepath='src/urcu-call-rcu-impl.h' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_mb() -->
+    <function-decl name='call_rcu_after_fork_parent_mb' mangled-name='call_rcu_after_fork_parent_mb' filepath='src/urcu-call-rcu-impl.h' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_mb() -->
+    <function-decl name='call_rcu_before_fork_mb' mangled-name='call_rcu_before_fork_mb' filepath='src/urcu-call-rcu-impl.h' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_mb() -->
+    <function-decl name='rcu_barrier_mb' mangled-name='rcu_barrier_mb' filepath='src/urcu-call-rcu-impl.h' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_mb() -->
+    <function-decl name='free_all_cpu_call_rcu_data_mb' mangled-name='free_all_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_mb(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_mb' mangled-name='call_rcu_data_free_mb' filepath='src/urcu-call-rcu-impl.h' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='744' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_mb(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_mb' mangled-name='call_rcu_mb' filepath='src/urcu-call-rcu-impl.h' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_mb'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='707' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_mb(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_mb' mangled-name='create_all_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='628' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_mb(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_mb' mangled-name='set_thread_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='615' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_mb() -->
+    <function-decl name='get_thread_call_rcu_data_mb' mangled-name='get_thread_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_mb() -->
+    <function-decl name='get_call_rcu_data_mb' mangled-name='get_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_mb() -->
+    <function-decl name='get_default_call_rcu_data_mb' mangled-name='get_default_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_mb(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_mb' mangled-name='set_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_mb(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_mb' mangled-name='create_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='492' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_mb(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_mb' mangled-name='get_call_rcu_thread_mb' filepath='src/urcu-call-rcu-impl.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='473' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_mb(int) -->
+    <function-decl name='get_cpu_call_rcu_data_mb' mangled-name='get_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='451' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_mb() -->
+    <function-decl name='rcu_unregister_thread_mb' mangled-name='rcu_unregister_thread_mb' filepath='src/urcu.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_mb() -->
+    <function-decl name='rcu_register_thread_mb' mangled-name='rcu_register_thread_mb' filepath='src/urcu.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_mb() -->
+    <function-decl name='rcu_read_ongoing_mb' mangled-name='rcu_read_ongoing_mb' filepath='src/urcu.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_mb() -->
+    <function-decl name='rcu_read_unlock_mb' mangled-name='rcu_read_unlock_mb' filepath='src/urcu.c' line='503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_mb() -->
+    <function-decl name='rcu_read_lock_mb' mangled-name='rcu_read_lock_mb' filepath='src/urcu.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_mb() -->
+    <function-decl name='synchronize_rcu_mb' mangled-name='synchronize_rcu_mb' filepath='src/urcu.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_init_mb() -->
+    <function-decl name='rcu_init_mb' mangled-name='rcu_init_mb' filepath='src/urcu.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml b/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml
new file mode 100644 (file)
index 0000000..f57eae2
--- /dev/null
@@ -0,0 +1,864 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-qsbr.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_child_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_parent_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_qsbr -->
+    <elf-symbol name='call_rcu_before_fork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_qsbr -->
+    <elf-symbol name='call_rcu_data_free_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_qsbr -->
+    <elf-symbol name='call_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_qsbr -->
+    <elf-symbol name='create_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_qsbr -->
+    <elf-symbol name='defer_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data -->
+    <elf-symbol name='free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_qsbr -->
+    <elf-symbol name='get_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_qsbr -->
+    <elf-symbol name='get_call_rcu_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='get_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_qsbr -->
+    <elf-symbol name='get_default_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='get_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_qsbr -->
+    <elf-symbol name='rcu_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_qsbr -->
+    <elf-symbol name='rcu_defer_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_qsbr -->
+    <elf-symbol name='rcu_defer_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_defer_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_qsbr -->
+    <elf-symbol name='rcu_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_quiescent_state_qsbr -->
+    <elf-symbol name='rcu_quiescent_state_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_qsbr -->
+    <elf-symbol name='rcu_read_lock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_qsbr -->
+    <elf-symbol name='rcu_read_ongoing_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_qsbr -->
+    <elf-symbol name='rcu_read_unlock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_qsbr -->
+    <elf-symbol name='rcu_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_offline_qsbr -->
+    <elf-symbol name='rcu_thread_offline_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_online_qsbr -->
+    <elf-symbol name='rcu_thread_online_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='set_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='set_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_qsbr -->
+    <elf-symbol name='synchronize_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_qsbr -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_qsbr -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_qsbr -->
+    <elf-symbol name='rcu_flavor_qsbr' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_qsbr -->
+    <elf-symbol name='rcu_gp_qsbr' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_qsbr -->
+    <elf-symbol name='rcu_reader_qsbr' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-qsbr.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_qsbr -->
+    <class-decl name='rcu_gp_qsbr' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='68' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_qsbr::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_qsbr::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='76' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_qsbr -->
+    <class-decl name='rcu_reader_qsbr' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='81' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_qsbr::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_qsbr::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- int rcu_reader_qsbr::waiting -->
+        <var-decl name='waiting' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- pthread_t rcu_reader_qsbr::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_qsbr::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='89' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='40' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../src/urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../src/urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../src/urcu-flavor.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../src/urcu-call-rcu.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../src/urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../src/urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='30' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../src/urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='52' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- rcu_gp_qsbr rcu_gp_qsbr -->
+    <var-decl name='rcu_gp_qsbr' type-id='type-id-10' mangled-name='rcu_gp_qsbr' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='79' column='1' elf-symbol-id='rcu_gp_qsbr'/>
+    <!-- rcu_reader_qsbr rcu_reader_qsbr -->
+    <var-decl name='rcu_reader_qsbr' type-id='type-id-13' mangled-name='rcu_reader_qsbr' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='92' column='1' elf-symbol-id='rcu_reader_qsbr'/>
+    <!-- const rcu_flavor_struct rcu_flavor_qsbr -->
+    <var-decl name='rcu_flavor_qsbr' type-id='type-id-40' mangled-name='rcu_flavor_qsbr' visibility='default' filepath='../src/urcu-flavor.h' line='79' column='1' elf-symbol-id='rcu_flavor_qsbr'/>
+    <!-- void rcu_defer_exit_qsbr() -->
+    <function-decl name='rcu_defer_exit_qsbr' mangled-name='rcu_defer_exit_qsbr' filepath='src/urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_qsbr() -->
+    <function-decl name='rcu_defer_unregister_thread_qsbr' mangled-name='rcu_defer_unregister_thread_qsbr' filepath='src/urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_qsbr() -->
+    <function-decl name='rcu_defer_register_thread_qsbr' mangled-name='rcu_defer_register_thread_qsbr' filepath='src/urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_qsbr'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_qsbr(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_qsbr' mangled-name='defer_rcu_qsbr' filepath='src/urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_qsbr'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_qsbr() -->
+    <function-decl name='rcu_defer_barrier_qsbr' mangled-name='rcu_defer_barrier_qsbr' filepath='src/urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_qsbr() -->
+    <function-decl name='rcu_defer_barrier_thread_qsbr' mangled-name='rcu_defer_barrier_thread_qsbr' filepath='src/urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_unregister_rculfhash_atfork_qsbr(urcu_atfork*) -->
+    <function-decl name='urcu_unregister_rculfhash_atfork_qsbr' mangled-name='urcu_unregister_rculfhash_atfork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_qsbr'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_register_rculfhash_atfork_qsbr(urcu_atfork*) -->
+    <function-decl name='urcu_register_rculfhash_atfork_qsbr' mangled-name='urcu_register_rculfhash_atfork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_qsbr'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_qsbr() -->
+    <function-decl name='call_rcu_after_fork_child_qsbr' mangled-name='call_rcu_after_fork_child_qsbr' filepath='src/urcu-call-rcu-impl.h' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_qsbr() -->
+    <function-decl name='call_rcu_after_fork_parent_qsbr' mangled-name='call_rcu_after_fork_parent_qsbr' filepath='src/urcu-call-rcu-impl.h' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_qsbr() -->
+    <function-decl name='call_rcu_before_fork_qsbr' mangled-name='call_rcu_before_fork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_qsbr() -->
+    <function-decl name='rcu_barrier_qsbr' mangled-name='rcu_barrier_qsbr' filepath='src/urcu-call-rcu-impl.h' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data() -->
+    <function-decl name='free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_qsbr(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_qsbr' mangled-name='call_rcu_data_free_qsbr' filepath='src/urcu-call-rcu-impl.h' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='744' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_qsbr(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_qsbr' mangled-name='call_rcu_qsbr' filepath='src/urcu-call-rcu-impl.h' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_qsbr'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='707' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_qsbr(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_qsbr' mangled-name='create_all_cpu_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='628' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_qsbr(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_qsbr' mangled-name='set_thread_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='615' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_qsbr() -->
+    <function-decl name='get_thread_call_rcu_data_qsbr' mangled-name='get_thread_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_qsbr() -->
+    <function-decl name='get_call_rcu_data_qsbr' mangled-name='get_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_qsbr() -->
+    <function-decl name='get_default_call_rcu_data_qsbr' mangled-name='get_default_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_qsbr(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_qsbr' mangled-name='set_cpu_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_qsbr(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_qsbr' mangled-name='create_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_qsbr'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='492' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_qsbr(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_qsbr' mangled-name='get_call_rcu_thread_qsbr' filepath='src/urcu-call-rcu-impl.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='473' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_qsbr(int) -->
+    <function-decl name='get_cpu_call_rcu_data_qsbr' mangled-name='get_cpu_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='451' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void rcu_exit_qsbr() -->
+    <function-decl name='rcu_exit_qsbr' mangled-name='rcu_exit_qsbr' filepath='src/urcu-qsbr.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_exit_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_qsbr() -->
+    <function-decl name='rcu_unregister_thread_qsbr' mangled-name='rcu_unregister_thread_qsbr' filepath='src/urcu-qsbr.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_qsbr() -->
+    <function-decl name='rcu_register_thread_qsbr' mangled-name='rcu_register_thread_qsbr' filepath='src/urcu-qsbr.c' line='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_thread_online_qsbr() -->
+    <function-decl name='rcu_thread_online_qsbr' mangled-name='rcu_thread_online_qsbr' filepath='src/urcu-qsbr.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_thread_online_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_thread_offline_qsbr() -->
+    <function-decl name='rcu_thread_offline_qsbr' mangled-name='rcu_thread_offline_qsbr' filepath='src/urcu-qsbr.c' line='454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_thread_offline_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_quiescent_state_qsbr() -->
+    <function-decl name='rcu_quiescent_state_qsbr' mangled-name='rcu_quiescent_state_qsbr' filepath='src/urcu-qsbr.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_quiescent_state_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_qsbr() -->
+    <function-decl name='rcu_read_ongoing_qsbr' mangled-name='rcu_read_ongoing_qsbr' filepath='src/urcu-qsbr.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_qsbr'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_qsbr() -->
+    <function-decl name='rcu_read_unlock_qsbr' mangled-name='rcu_read_unlock_qsbr' filepath='src/urcu-qsbr.c' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_qsbr() -->
+    <function-decl name='rcu_read_lock_qsbr' mangled-name='rcu_read_lock_qsbr' filepath='src/urcu-qsbr.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_qsbr() -->
+    <function-decl name='synchronize_rcu_qsbr' mangled-name='synchronize_rcu_qsbr' filepath='src/urcu-qsbr.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml b/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml
new file mode 100644 (file)
index 0000000..e3078f7
--- /dev/null
@@ -0,0 +1,850 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-signal.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_sig -->
+    <elf-symbol name='call_rcu_after_fork_child_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_sig -->
+    <elf-symbol name='call_rcu_after_fork_parent_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_sig -->
+    <elf-symbol name='call_rcu_before_fork_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_sig -->
+    <elf-symbol name='call_rcu_data_free_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_sig -->
+    <elf-symbol name='call_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_sig -->
+    <elf-symbol name='create_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_sig -->
+    <elf-symbol name='defer_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_sig -->
+    <elf-symbol name='get_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_sig -->
+    <elf-symbol name='get_call_rcu_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_sig -->
+    <elf-symbol name='get_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_sig -->
+    <elf-symbol name='get_default_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_sig -->
+    <elf-symbol name='get_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_sig -->
+    <elf-symbol name='rcu_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_sig -->
+    <elf-symbol name='rcu_defer_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_sig -->
+    <elf-symbol name='rcu_defer_barrier_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_sig -->
+    <elf-symbol name='rcu_defer_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_sig -->
+    <elf-symbol name='rcu_defer_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_sig -->
+    <elf-symbol name='rcu_defer_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_sig -->
+    <elf-symbol name='rcu_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_sig -->
+    <elf-symbol name='rcu_init_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_sig -->
+    <elf-symbol name='rcu_read_lock_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_sig -->
+    <elf-symbol name='rcu_read_ongoing_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_sig -->
+    <elf-symbol name='rcu_read_unlock_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_sig -->
+    <elf-symbol name='rcu_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_sig -->
+    <elf-symbol name='rcu_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_sig -->
+    <elf-symbol name='set_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_sig -->
+    <elf-symbol name='set_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_sig -->
+    <elf-symbol name='synchronize_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_sig -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_sig -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_sig -->
+    <elf-symbol name='rcu_flavor_sig' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_sig -->
+    <elf-symbol name='rcu_gp_sig' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_sig -->
+    <elf-symbol name='rcu_reader_sig' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_sig -->
+    <class-decl name='rcu_gp_sig' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu.h' line='119' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_sig::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu.h' line='127' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_sig::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu.h' line='129' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_sig -->
+    <class-decl name='rcu_reader_sig' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu.h' line='134' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_sig::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu.h' line='136' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char rcu_reader_sig::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu.h' line='137' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_sig::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu.h' line='139' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_sig::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_sig::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu.h' line='142' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='40' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../src/urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../src/urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../src/urcu-flavor.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../src/urcu-call-rcu.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../src/urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../src/urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='30' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../src/urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='52' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- rcu_gp_sig rcu_gp_sig -->
+    <var-decl name='rcu_gp_sig' type-id='type-id-10' mangled-name='rcu_gp_sig' visibility='default' filepath='../include/urcu/static/urcu.h' line='132' column='1' elf-symbol-id='rcu_gp_sig'/>
+    <!-- rcu_reader_sig rcu_reader_sig -->
+    <var-decl name='rcu_reader_sig' type-id='type-id-13' mangled-name='rcu_reader_sig' visibility='default' filepath='../include/urcu/static/urcu.h' line='145' column='1' elf-symbol-id='rcu_reader_sig'/>
+    <!-- const rcu_flavor_struct rcu_flavor_sig -->
+    <var-decl name='rcu_flavor_sig' type-id='type-id-40' mangled-name='rcu_flavor_sig' visibility='default' filepath='../src/urcu-flavor.h' line='79' column='1' elf-symbol-id='rcu_flavor_sig'/>
+    <!-- void rcu_defer_exit_sig() -->
+    <function-decl name='rcu_defer_exit_sig' mangled-name='rcu_defer_exit_sig' filepath='src/urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_sig() -->
+    <function-decl name='rcu_defer_unregister_thread_sig' mangled-name='rcu_defer_unregister_thread_sig' filepath='src/urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_sig() -->
+    <function-decl name='rcu_defer_register_thread_sig' mangled-name='rcu_defer_register_thread_sig' filepath='src/urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_sig'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_sig(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_sig' mangled-name='defer_rcu_sig' filepath='src/urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_sig'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_sig() -->
+    <function-decl name='rcu_defer_barrier_sig' mangled-name='rcu_defer_barrier_sig' filepath='src/urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_sig() -->
+    <function-decl name='rcu_defer_barrier_thread_sig' mangled-name='rcu_defer_barrier_thread_sig' filepath='src/urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_unregister_rculfhash_atfork_sig(urcu_atfork*) -->
+    <function-decl name='urcu_unregister_rculfhash_atfork_sig' mangled-name='urcu_unregister_rculfhash_atfork_sig' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_sig'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_register_rculfhash_atfork_sig(urcu_atfork*) -->
+    <function-decl name='urcu_register_rculfhash_atfork_sig' mangled-name='urcu_register_rculfhash_atfork_sig' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_sig'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_sig() -->
+    <function-decl name='call_rcu_after_fork_child_sig' mangled-name='call_rcu_after_fork_child_sig' filepath='src/urcu-call-rcu-impl.h' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_sig() -->
+    <function-decl name='call_rcu_after_fork_parent_sig' mangled-name='call_rcu_after_fork_parent_sig' filepath='src/urcu-call-rcu-impl.h' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_sig() -->
+    <function-decl name='call_rcu_before_fork_sig' mangled-name='call_rcu_before_fork_sig' filepath='src/urcu-call-rcu-impl.h' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_sig() -->
+    <function-decl name='rcu_barrier_sig' mangled-name='rcu_barrier_sig' filepath='src/urcu-call-rcu-impl.h' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_sig() -->
+    <function-decl name='free_all_cpu_call_rcu_data_sig' mangled-name='free_all_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_sig(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_sig' mangled-name='call_rcu_data_free_sig' filepath='src/urcu-call-rcu-impl.h' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='744' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_sig(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_sig' mangled-name='call_rcu_sig' filepath='src/urcu-call-rcu-impl.h' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_sig'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='707' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_sig(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_sig' mangled-name='create_all_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='628' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_sig(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_sig' mangled-name='set_thread_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='615' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_sig() -->
+    <function-decl name='get_thread_call_rcu_data_sig' mangled-name='get_thread_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_sig'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_sig() -->
+    <function-decl name='get_call_rcu_data_sig' mangled-name='get_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_sig'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_sig() -->
+    <function-decl name='get_default_call_rcu_data_sig' mangled-name='get_default_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_sig'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_sig(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_sig' mangled-name='set_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_sig(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_sig' mangled-name='create_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_sig'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='492' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_sig(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_sig' mangled-name='get_call_rcu_thread_sig' filepath='src/urcu-call-rcu-impl.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='473' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_sig(int) -->
+    <function-decl name='get_cpu_call_rcu_data_sig' mangled-name='get_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='451' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void rcu_exit_sig() -->
+    <function-decl name='rcu_exit_sig' mangled-name='rcu_exit_sig' filepath='src/urcu.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_exit_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_init_sig() -->
+    <function-decl name='rcu_init_sig' mangled-name='rcu_init_sig' filepath='src/urcu.c' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_sig() -->
+    <function-decl name='rcu_unregister_thread_sig' mangled-name='rcu_unregister_thread_sig' filepath='src/urcu.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_sig() -->
+    <function-decl name='rcu_register_thread_sig' mangled-name='rcu_register_thread_sig' filepath='src/urcu.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_sig() -->
+    <function-decl name='rcu_read_ongoing_sig' mangled-name='rcu_read_ongoing_sig' filepath='src/urcu.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_sig'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_sig() -->
+    <function-decl name='rcu_read_unlock_sig' mangled-name='rcu_read_unlock_sig' filepath='src/urcu.c' line='503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_sig() -->
+    <function-decl name='rcu_read_lock_sig' mangled-name='rcu_read_lock_sig' filepath='src/urcu.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_sig() -->
+    <function-decl name='synchronize_rcu_sig' mangled-name='synchronize_rcu_sig' filepath='src/urcu.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu.so.6.xml b/extras/abi/0.10/x86_64-pc-linux-gnu/liburcu.so.6.xml
new file mode 100644 (file)
index 0000000..562d4d2
--- /dev/null
@@ -0,0 +1,847 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_memb -->
+    <elf-symbol name='call_rcu_after_fork_child_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_memb -->
+    <elf-symbol name='call_rcu_after_fork_parent_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_memb -->
+    <elf-symbol name='call_rcu_before_fork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_memb -->
+    <elf-symbol name='call_rcu_data_free_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_memb -->
+    <elf-symbol name='call_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_memb -->
+    <elf-symbol name='create_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_memb -->
+    <elf-symbol name='defer_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_memb -->
+    <elf-symbol name='get_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_memb -->
+    <elf-symbol name='get_call_rcu_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_memb -->
+    <elf-symbol name='get_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_memb -->
+    <elf-symbol name='get_default_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_memb -->
+    <elf-symbol name='get_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_memb -->
+    <elf-symbol name='rcu_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_memb -->
+    <elf-symbol name='rcu_defer_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_memb -->
+    <elf-symbol name='rcu_defer_barrier_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_memb -->
+    <elf-symbol name='rcu_defer_exit_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_memb -->
+    <elf-symbol name='rcu_defer_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_memb -->
+    <elf-symbol name='rcu_defer_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_memb -->
+    <elf-symbol name='rcu_init_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_memb -->
+    <elf-symbol name='rcu_read_lock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_memb -->
+    <elf-symbol name='rcu_read_ongoing_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_memb -->
+    <elf-symbol name='rcu_read_unlock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_memb -->
+    <elf-symbol name='rcu_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_memb -->
+    <elf-symbol name='rcu_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_memb -->
+    <elf-symbol name='set_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_memb -->
+    <elf-symbol name='set_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_memb -->
+    <elf-symbol name='synchronize_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_memb -->
+    <elf-symbol name='rcu_flavor_memb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_memb -->
+    <elf-symbol name='rcu_gp_memb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_has_sys_membarrier_memb -->
+    <elf-symbol name='rcu_has_sys_membarrier_memb' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_memb -->
+    <elf-symbol name='rcu_reader_memb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_memb -->
+    <class-decl name='rcu_gp_memb' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu.h' line='119' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_memb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu.h' line='127' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_memb::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu.h' line='129' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_memb -->
+    <class-decl name='rcu_reader_memb' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu.h' line='134' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_memb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu.h' line='136' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char rcu_reader_memb::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu.h' line='137' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_memb::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu.h' line='139' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_memb::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_memb::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu.h' line='142' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='40' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../src/urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../src/urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../src/urcu-flavor.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../src/urcu-flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../src/urcu-flavor.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../src/urcu-call-rcu.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../src/urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../src/urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../src/urcu-flavor.h' line='30' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../src/urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../src/urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='52' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- int rcu_has_sys_membarrier_memb -->
+    <var-decl name='rcu_has_sys_membarrier_memb' type-id='type-id-5' mangled-name='rcu_has_sys_membarrier_memb' visibility='default' filepath='../include/urcu/static/urcu.h' line='84' column='1' elf-symbol-id='rcu_has_sys_membarrier_memb'/>
+    <!-- rcu_gp_memb rcu_gp_memb -->
+    <var-decl name='rcu_gp_memb' type-id='type-id-10' mangled-name='rcu_gp_memb' visibility='default' filepath='../include/urcu/static/urcu.h' line='132' column='1' elf-symbol-id='rcu_gp_memb'/>
+    <!-- rcu_reader_memb rcu_reader_memb -->
+    <var-decl name='rcu_reader_memb' type-id='type-id-13' mangled-name='rcu_reader_memb' visibility='default' filepath='../include/urcu/static/urcu.h' line='145' column='1' elf-symbol-id='rcu_reader_memb'/>
+    <!-- const rcu_flavor_struct rcu_flavor_memb -->
+    <var-decl name='rcu_flavor_memb' type-id='type-id-40' mangled-name='rcu_flavor_memb' visibility='default' filepath='../src/urcu-flavor.h' line='79' column='1' elf-symbol-id='rcu_flavor_memb'/>
+    <!-- void rcu_defer_exit_memb() -->
+    <function-decl name='rcu_defer_exit_memb' mangled-name='rcu_defer_exit_memb' filepath='src/urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_memb() -->
+    <function-decl name='rcu_defer_unregister_thread_memb' mangled-name='rcu_defer_unregister_thread_memb' filepath='src/urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_memb() -->
+    <function-decl name='rcu_defer_register_thread_memb' mangled-name='rcu_defer_register_thread_memb' filepath='src/urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_memb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_memb(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_memb' mangled-name='defer_rcu_memb' filepath='src/urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_memb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_memb() -->
+    <function-decl name='rcu_defer_barrier_memb' mangled-name='rcu_defer_barrier_memb' filepath='src/urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_memb() -->
+    <function-decl name='rcu_defer_barrier_thread_memb' mangled-name='rcu_defer_barrier_thread_memb' filepath='src/urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_unregister_rculfhash_atfork_memb(urcu_atfork*) -->
+    <function-decl name='urcu_unregister_rculfhash_atfork_memb' mangled-name='urcu_unregister_rculfhash_atfork_memb' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_memb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1011' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_register_rculfhash_atfork_memb(urcu_atfork*) -->
+    <function-decl name='urcu_register_rculfhash_atfork_memb' mangled-name='urcu_register_rculfhash_atfork_memb' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_memb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1001' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_memb() -->
+    <function-decl name='call_rcu_after_fork_child_memb' mangled-name='call_rcu_after_fork_child_memb' filepath='src/urcu-call-rcu-impl.h' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_memb() -->
+    <function-decl name='call_rcu_after_fork_parent_memb' mangled-name='call_rcu_after_fork_parent_memb' filepath='src/urcu-call-rcu-impl.h' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_memb() -->
+    <function-decl name='call_rcu_before_fork_memb' mangled-name='call_rcu_before_fork_memb' filepath='src/urcu-call-rcu-impl.h' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_memb() -->
+    <function-decl name='rcu_barrier_memb' mangled-name='rcu_barrier_memb' filepath='src/urcu-call-rcu-impl.h' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_memb() -->
+    <function-decl name='free_all_cpu_call_rcu_data_memb' mangled-name='free_all_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_memb(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_memb' mangled-name='call_rcu_data_free_memb' filepath='src/urcu-call-rcu-impl.h' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='744' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_memb(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_memb' mangled-name='call_rcu_memb' filepath='src/urcu-call-rcu-impl.h' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_memb'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='707' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_memb(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_memb' mangled-name='create_all_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='628' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_memb(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_memb' mangled-name='set_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='615' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_memb() -->
+    <function-decl name='get_thread_call_rcu_data_memb' mangled-name='get_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_memb() -->
+    <function-decl name='get_call_rcu_data_memb' mangled-name='get_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_memb() -->
+    <function-decl name='get_default_call_rcu_data_memb' mangled-name='get_default_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_memb(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_memb' mangled-name='set_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='515' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_memb(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_memb' mangled-name='create_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='492' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_memb(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_memb' mangled-name='get_call_rcu_thread_memb' filepath='src/urcu-call-rcu-impl.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='473' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_memb(int) -->
+    <function-decl name='get_cpu_call_rcu_data_memb' mangled-name='get_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='451' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void rcu_init_memb() -->
+    <function-decl name='rcu_init_memb' mangled-name='rcu_init_memb' filepath='src/urcu.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_memb() -->
+    <function-decl name='rcu_unregister_thread_memb' mangled-name='rcu_unregister_thread_memb' filepath='src/urcu.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_memb() -->
+    <function-decl name='rcu_register_thread_memb' mangled-name='rcu_register_thread_memb' filepath='src/urcu.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_memb() -->
+    <function-decl name='rcu_read_ongoing_memb' mangled-name='rcu_read_ongoing_memb' filepath='src/urcu.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_memb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_memb() -->
+    <function-decl name='rcu_read_unlock_memb' mangled-name='rcu_read_unlock_memb' filepath='src/urcu.c' line='503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_memb() -->
+    <function-decl name='rcu_read_lock_memb' mangled-name='rcu_read_lock_memb' filepath='src/urcu.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_memb() -->
+    <function-decl name='synchronize_rcu_memb' mangled-name='synchronize_rcu_memb' filepath='src/urcu.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml
new file mode 100644 (file)
index 0000000..9549700
--- /dev/null
@@ -0,0 +1,970 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-bp.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_bp -->
+    <elf-symbol name='call_rcu_after_fork_child_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_bp -->
+    <elf-symbol name='call_rcu_after_fork_parent_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_bp -->
+    <elf-symbol name='call_rcu_before_fork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_bp -->
+    <elf-symbol name='call_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_call_rcu' is-defined='yes'/>
+    <!-- call_rcu_data_free_bp -->
+    <elf-symbol name='call_rcu_data_free_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_call_rcu_data_free' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_bp -->
+    <elf-symbol name='create_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_create_call_rcu_data' is-defined='yes'/>
+    <!-- defer_rcu_bp -->
+    <elf-symbol name='defer_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_free_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_data_bp -->
+    <elf-symbol name='get_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_bp -->
+    <elf-symbol name='get_call_rcu_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_bp -->
+    <elf-symbol name='get_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_bp -->
+    <elf-symbol name='get_default_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_bp -->
+    <elf-symbol name='get_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_bp -->
+    <elf-symbol name='rcu_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_barrier' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_child -->
+    <elf-symbol name='rcu_bp_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_after_fork_child' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_parent -->
+    <elf-symbol name='rcu_bp_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_before_fork -->
+    <elf-symbol name='rcu_bp_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_register -->
+    <elf-symbol name='rcu_bp_register' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_register' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_cmpxchg_pointer_sym' is-defined='yes'/>
+    <!-- rcu_defer_barrier_bp -->
+    <elf-symbol name='rcu_defer_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_bp -->
+    <elf-symbol name='rcu_defer_barrier_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_bp -->
+    <elf-symbol name='rcu_defer_exit_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_bp -->
+    <elf-symbol name='rcu_defer_register_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_bp -->
+    <elf-symbol name='rcu_defer_unregister_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym_bp -->
+    <elf-symbol name='rcu_dereference_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_dereference_sym' is-defined='yes'/>
+    <!-- rcu_read_lock_bp -->
+    <elf-symbol name='rcu_read_lock_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_bp -->
+    <elf-symbol name='rcu_read_ongoing_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_bp -->
+    <elf-symbol name='rcu_read_unlock_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_read_unlock' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym_bp -->
+    <elf-symbol name='rcu_set_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_xchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_bp -->
+    <elf-symbol name='set_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_set_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_bp -->
+    <elf-symbol name='set_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_bp -->
+    <elf-symbol name='synchronize_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_after_fork_child -->
+    <elf-symbol name='urcu_bp_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_after_fork_parent -->
+    <elf-symbol name='urcu_bp_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_bp_after_fork_parent' is-defined='yes'/>
+    <!-- urcu_bp_barrier -->
+    <elf-symbol name='urcu_bp_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_before_fork -->
+    <elf-symbol name='urcu_bp_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_bp_before_fork' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu -->
+    <elf-symbol name='urcu_bp_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_bp_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_bp_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_bp' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_before_fork -->
+    <elf-symbol name='urcu_bp_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_bp' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_data_free -->
+    <elf-symbol name='urcu_bp_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_cmpxchg_pointer_sym -->
+    <elf-symbol name='urcu_bp_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_create_call_rcu_data -->
+    <elf-symbol name='urcu_bp_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_barrier -->
+    <elf-symbol name='urcu_bp_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_barrier_thread -->
+    <elf-symbol name='urcu_bp_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_exit -->
+    <elf-symbol name='urcu_bp_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_bp' is-defined='yes'/>
+    <!-- urcu_bp_defer_rcu -->
+    <elf-symbol name='urcu_bp_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_register_thread -->
+    <elf-symbol name='urcu_bp_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_bp' is-defined='yes'/>
+    <!-- urcu_bp_defer_unregister_thread -->
+    <elf-symbol name='urcu_bp_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_unregister_thread_bp' is-defined='yes'/>
+    <!-- urcu_bp_dereference_sym -->
+    <elf-symbol name='urcu_bp_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_call_rcu_thread -->
+    <elf-symbol name='urcu_bp_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_bp' is-defined='yes'/>
+    <!-- urcu_bp_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_cpu_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_thread_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_read_lock -->
+    <elf-symbol name='urcu_bp_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_lock_bp' is-defined='yes'/>
+    <!-- urcu_bp_read_ongoing -->
+    <elf-symbol name='urcu_bp_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_ongoing_bp' is-defined='yes'/>
+    <!-- urcu_bp_read_unlock -->
+    <elf-symbol name='urcu_bp_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register -->
+    <elf-symbol name='urcu_bp_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_bp_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_set_pointer_sym -->
+    <elf-symbol name='urcu_bp_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_set_pointer_sym_bp' is-defined='yes'/>
+    <!-- urcu_bp_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_bp_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_thread_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_synchronize_rcu -->
+    <elf-symbol name='urcu_bp_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_bp' is-defined='yes'/>
+    <!-- urcu_bp_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_bp_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_unregister_rculfhash_atfork_bp' is-defined='yes'/>
+    <!-- urcu_bp_xchg_pointer_sym -->
+    <elf-symbol name='urcu_bp_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_xchg_pointer_sym_bp' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_bp -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_bp -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_bp -->
+    <elf-symbol name='rcu_flavor_bp' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_flavor' is-defined='yes'/>
+    <!-- rcu_gp_bp -->
+    <elf-symbol name='rcu_gp_bp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_gp' is-defined='yes'/>
+    <!-- rcu_reader_bp -->
+    <elf-symbol name='rcu_reader_bp' size='8' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_flavor -->
+    <elf-symbol name='urcu_bp_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_gp -->
+    <elf-symbol name='urcu_bp_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_has_sys_membarrier -->
+    <elf-symbol name='urcu_bp_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_reader -->
+    <elf-symbol name='urcu_bp_reader' size='8' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_bp' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-bp.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_bp_gp -->
+    <class-decl name='urcu_bp_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='77' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_bp_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='85' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_bp_reader -->
+    <class-decl name='urcu_bp_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='90' column='1' id='type-id-11'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_bp_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_bp_reader::node -->
+        <var-decl name='node' type-id='type-id-12' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_bp_reader::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- int urcu_bp_reader::alloc -->
+        <var-decl name='alloc' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='96' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-13'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-17' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-21'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-22' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-23' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-25'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-27' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-29' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-30' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-12' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-22' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-32' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-33' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-32'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-33'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-36' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-35'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-38' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-31'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-38'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-14'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-24'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-17'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-43'/>
+    <!-- urcu_bp_reader* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-44'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-16'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-23'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-18'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-19'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-26'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-27'/>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-51'/>
+    <!-- int urcu_bp_has_sys_membarrier -->
+    <var-decl name='urcu_bp_has_sys_membarrier' type-id='type-id-5' mangled-name='urcu_bp_has_sys_membarrier' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='109' column='1' elf-symbol-id='urcu_bp_has_sys_membarrier'/>
+    <!-- urcu_bp_gp urcu_bp_gp -->
+    <var-decl name='urcu_bp_gp' type-id='type-id-10' mangled-name='rcu_gp_bp' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='88' column='1' elf-symbol-id='rcu_gp_bp'/>
+    <!-- urcu_bp_reader* urcu_bp_reader -->
+    <var-decl name='urcu_bp_reader' type-id='type-id-44' mangled-name='urcu_bp_reader' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='104' column='1' elf-symbol-id='urcu_bp_reader'/>
+    <!-- const rcu_flavor_struct urcu_bp_flavor -->
+    <var-decl name='urcu_bp_flavor' type-id='type-id-40' mangled-name='rcu_flavor_bp' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_bp'/>
+    <!-- void urcu_bp_defer_exit() -->
+    <function-decl name='urcu_bp_defer_exit' mangled-name='urcu_bp_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_unregister_thread() -->
+    <function-decl name='urcu_bp_defer_unregister_thread' mangled-name='urcu_bp_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_defer_register_thread() -->
+    <function-decl name='urcu_bp_defer_register_thread' mangled-name='urcu_bp_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_bp_defer_rcu' mangled-name='defer_rcu_bp' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_bp'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_barrier() -->
+    <function-decl name='urcu_bp_defer_barrier' mangled-name='rcu_defer_barrier_bp' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_barrier_thread() -->
+    <function-decl name='urcu_bp_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_bp' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_bp_unregister_rculfhash_atfork' mangled-name='urcu_bp_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_bp_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_bp' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_bp'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_bp_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_bp' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_bp_call_rcu_after_fork_parent' mangled-name='urcu_bp_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_before_fork() -->
+    <function-decl name='urcu_bp_call_rcu_before_fork' mangled-name='urcu_bp_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_barrier() -->
+    <function-decl name='urcu_bp_barrier' mangled-name='rcu_barrier_bp' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_bp_free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_bp_call_rcu_data_free' mangled-name='call_rcu_data_free_bp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_bp_call_rcu' mangled-name='call_rcu_bp' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_bp'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_bp_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_bp_set_thread_call_rcu_data' mangled-name='urcu_bp_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_thread_call_rcu_data' mangled-name='urcu_bp_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_call_rcu_data' mangled-name='get_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_default_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_default_call_rcu_data' mangled-name='urcu_bp_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_bp_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_bp_set_cpu_call_rcu_data' mangled-name='set_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_bp_create_call_rcu_data' mangled-name='create_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_bp_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_bp_get_call_rcu_thread' mangled-name='urcu_bp_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-13'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_bp_get_cpu_call_rcu_data' mangled-name='urcu_bp_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void* urcu_bp_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='urcu_bp_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym_bp' filepath='src/urcu-bp.c' line='774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='774' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-bp.c' line='774' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-bp.c' line='774' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='urcu_bp_xchg_pointer_sym' mangled-name='urcu_bp_xchg_pointer_sym' filepath='src/urcu-bp.c' line='766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='766' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='766' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_set_pointer_sym(void**, void*) -->
+    <function-decl name='urcu_bp_set_pointer_sym' mangled-name='urcu_bp_set_pointer_sym' filepath='src/urcu-bp.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='757' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='757' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_dereference_sym(void*) -->
+    <function-decl name='urcu_bp_dereference_sym' mangled-name='rcu_dereference_sym_bp' filepath='src/urcu-bp.c' line='750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym_bp'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-bp.c' line='750' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void urcu_bp_after_fork_child() -->
+    <function-decl name='urcu_bp_after_fork_child' mangled-name='rcu_bp_after_fork_child' filepath='src/urcu-bp.c' line='735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_after_fork_parent() -->
+    <function-decl name='urcu_bp_after_fork_parent' mangled-name='urcu_bp_after_fork_parent' filepath='src/urcu-bp.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_before_fork() -->
+    <function-decl name='urcu_bp_before_fork' mangled-name='urcu_bp_before_fork' filepath='src/urcu-bp.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register() -->
+    <function-decl name='urcu_bp_register' mangled-name='rcu_bp_register' filepath='src/urcu-bp.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_register'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_read_ongoing() -->
+    <function-decl name='urcu_bp_read_ongoing' mangled-name='urcu_bp_read_ongoing' filepath='src/urcu-bp.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_read_unlock() -->
+    <function-decl name='urcu_bp_read_unlock' mangled-name='rcu_read_unlock_bp' filepath='src/urcu-bp.c' line='364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_read_lock() -->
+    <function-decl name='urcu_bp_read_lock' mangled-name='urcu_bp_read_lock' filepath='src/urcu-bp.c' line='358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_synchronize_rcu() -->
+    <function-decl name='urcu_bp_synchronize_rcu' mangled-name='urcu_bp_synchronize_rcu' filepath='src/urcu-bp.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-50'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-52'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-53'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-54'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-55'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-56'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-57'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-58' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-59'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-58'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-52' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-61' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-61'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-62' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-63'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-64'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-65'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-63' const='yes' id='type-id-66'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-68'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-32' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-59' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml
new file mode 100644 (file)
index 0000000..6da0790
--- /dev/null
@@ -0,0 +1,1472 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-cds.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_lfs_init -->
+    <elf-symbol name='__cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop -->
+    <elf-symbol name='__cds_lfs_pop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop_all -->
+    <elf-symbol name='__cds_lfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- _cds_lfht_new -->
+    <elf-symbol name='_cds_lfht_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add -->
+    <elf-symbol name='cds_lfht_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_replace -->
+    <elf-symbol name='cds_lfht_add_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_unique -->
+    <elf-symbol name='cds_lfht_add_unique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_count_nodes -->
+    <elf-symbol name='cds_lfht_count_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_del -->
+    <elf-symbol name='cds_lfht_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_destroy -->
+    <elf-symbol name='cds_lfht_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_first -->
+    <elf-symbol name='cds_lfht_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_fls_ulong -->
+    <elf-symbol name='cds_lfht_fls_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_get_count_order_ulong -->
+    <elf-symbol name='cds_lfht_get_count_order_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_is_node_deleted -->
+    <elf-symbol name='cds_lfht_is_node_deleted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_lookup -->
+    <elf-symbol name='cds_lfht_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next -->
+    <elf-symbol name='cds_lfht_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next_duplicate -->
+    <elf-symbol name='cds_lfht_next_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_replace -->
+    <elf-symbol name='cds_lfht_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_resize -->
+    <elf-symbol name='cds_lfht_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_dequeue_rcu -->
+    <elf-symbol name='cds_lfq_dequeue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_destroy_rcu -->
+    <elf-symbol name='cds_lfq_destroy_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_enqueue_rcu -->
+    <elf-symbol name='cds_lfq_enqueue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_init_rcu -->
+    <elf-symbol name='cds_lfq_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_node_init_rcu -->
+    <elf-symbol name='cds_lfq_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_destroy -->
+    <elf-symbol name='cds_lfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_empty -->
+    <elf-symbol name='cds_lfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init -->
+    <elf-symbol name='cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init_rcu -->
+    <elf-symbol name='cds_lfs_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init -->
+    <elf-symbol name='cds_lfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init_rcu -->
+    <elf-symbol name='cds_lfs_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_all_blocking -->
+    <elf-symbol name='cds_lfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_blocking -->
+    <elf-symbol name='cds_lfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_lock -->
+    <elf-symbol name='cds_lfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_rcu -->
+    <elf-symbol name='cds_lfs_pop_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_unlock -->
+    <elf-symbol name='cds_lfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push -->
+    <elf-symbol name='cds_lfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push_rcu -->
+    <elf-symbol name='cds_lfs_push_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create -->
+    <elf-symbol name='urcu_workqueue_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_completion -->
+    <elf-symbol name='urcu_workqueue_create_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_worker -->
+    <elf-symbol name='urcu_workqueue_create_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy -->
+    <elf-symbol name='urcu_workqueue_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy_completion -->
+    <elf-symbol name='urcu_workqueue_destroy_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_flush_queued_work -->
+    <elf-symbol name='urcu_workqueue_flush_queued_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_pause_worker -->
+    <elf-symbol name='urcu_workqueue_pause_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_completion -->
+    <elf-symbol name='urcu_workqueue_queue_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_work -->
+    <elf-symbol name='urcu_workqueue_queue_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_resume_worker -->
+    <elf-symbol name='urcu_workqueue_resume_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_wait_completion -->
+    <elf-symbol name='urcu_workqueue_wait_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_chunk -->
+    <elf-symbol name='cds_lfht_mm_chunk' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_mmap -->
+    <elf-symbol name='cds_lfht_mm_mmap' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_order -->
+    <elf-symbol name='cds_lfht_mm_order' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='rculfqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-2'/>
+    <!-- struct cds_lfq_node_rcu -->
+    <class-decl name='cds_lfq_node_rcu' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='35' column='1' id='type-id-3'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int cds_lfq_node_rcu::dummy -->
+        <var-decl name='dummy' type-id='type-id-1' visibility='default' filepath='../include/urcu/rculfqueue.h' line='37' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfq_queue_rcu -->
+    <class-decl name='cds_lfq_queue_rcu' size-in-bits='192' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='40' column='1' id='type-id-5'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::head -->
+        <var-decl name='head' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::tail -->
+        <var-decl name='tail' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* cds_lfq_queue_rcu::queue_call_rcu -->
+        <var-decl name='queue_call_rcu' type-id='type-id-6' visibility='default' filepath='../include/urcu/rculfqueue.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-7'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-9' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-8'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfq_node_rcu* -->
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-4'/>
+    <!-- cds_lfq_queue_rcu* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-10'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-12'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-9'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-6'/>
+    <!-- cds_lfq_node_rcu* cds_lfq_dequeue_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_dequeue_rcu' mangled-name='cds_lfq_dequeue_rcu' filepath='src/rculfqueue.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_dequeue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='56' column='1'/>
+      <!-- cds_lfq_node_rcu* -->
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <!-- void cds_lfq_enqueue_rcu(cds_lfq_queue_rcu*, cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_enqueue_rcu' mangled-name='cds_lfq_enqueue_rcu' filepath='src/rculfqueue.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_enqueue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfq_destroy_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_destroy_rcu' mangled-name='cds_lfq_destroy_rcu' filepath='src/rculfqueue.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_destroy_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='45' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfq_init_rcu(cds_lfq_queue_rcu*, void (rcu_head*, void (rcu_head*)*)*) -->
+    <function-decl name='cds_lfq_init_rcu' mangled-name='cds_lfq_init_rcu' filepath='src/rculfqueue.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_init_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='38' column='1'/>
+      <!-- parameter of type 'void (rcu_head*, void (rcu_head*)*)*' -->
+      <parameter type-id='type-id-6' name='queue_call_rcu' filepath='src/rculfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfq_node_init_rcu(cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_node_init_rcu' mangled-name='cds_lfq_node_init_rcu' filepath='src/rculfqueue.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_node_init_rcu'>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-13'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-14'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-9'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_lfs_node_rcu -->
+    <class-decl name='cds_lfs_node_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='37' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack_rcu -->
+    <class-decl name='cds_lfs_stack_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='41' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_stack_rcu::head -->
+        <var-decl name='head' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfs_node_rcu* -->
+    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_lfs_stack_rcu* -->
+    <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-18'/>
+    <!-- cds_lfs_node_rcu* cds_lfs_pop_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_pop_rcu' mangled-name='cds_lfs_pop_rcu' filepath='src/rculfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='53' column='1'/>
+      <!-- cds_lfs_node_rcu* -->
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <!-- int cds_lfs_push_rcu(cds_lfs_stack_rcu*, cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_push_rcu' mangled-name='cds_lfs_push_rcu' filepath='src/rculfstack.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='47' column='1'/>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='48' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfs_init_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_init_rcu' mangled-name='cds_lfs_init_rcu' filepath='src/rculfstack.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='42' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init_rcu(cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_node_init_rcu' mangled-name='cds_lfs_node_init_rcu' filepath='src/rculfstack.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init_rcu'>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='37' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='lfstack.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-19'/>
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-20'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='320' id='type-id-21'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-22' id='type-id-23'/>
+
+    </array-type-def>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-24'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-25'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-26'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-22'/>
+    <!-- struct cds_lfs_head -->
+    <class-decl name='cds_lfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='69' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node cds_lfs_head::node -->
+        <var-decl name='node' type-id='type-id-28' visibility='default' filepath='../include/urcu/lfstack.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_node -->
+    <class-decl name='cds_lfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='59' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node* cds_lfs_node::next -->
+        <var-decl name='next' type-id='type-id-29' visibility='default' filepath='../include/urcu/lfstack.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_lfs_stack_ptr_t -->
+    <typedef-decl name='cds_lfs_stack_ptr_t' type-id='type-id-30' filepath='../include/urcu/lfstack.h' line='90' column='1' id='type-id-31'/>
+    <!-- union {__cds_lfs_stack* _s; cds_lfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='87' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __cds_lfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-32' visibility='default' filepath='../include/urcu/lfstack.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfs_stack* s -->
+        <var-decl name='s' type-id='type-id-33' visibility='default' filepath='../include/urcu/lfstack.h' line='89' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_lfs_stack -->
+    <class-decl name='__cds_lfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='73' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* __cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack -->
+    <class-decl name='cds_lfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='77' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_lfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/lfstack.h' line='79' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__1 pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-38' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-37'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-39' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-39'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-40' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-41' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-40'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-41'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-32'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-42'/>
+    <!-- cds_lfs_head* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_lfs_node* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
+    <!-- cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-33'/>
+    <!-- cds_lfs_head* __cds_lfs_pop_all(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop_all' mangled-name='__cds_lfs_pop_all' filepath='src/lfstack.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop_all'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='88' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* __cds_lfs_pop(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop' mangled-name='__cds_lfs_pop' filepath='src/lfstack.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='83' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_unlock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_unlock' mangled-name='cds_lfs_pop_unlock' filepath='src/lfstack.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_unlock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='78' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_lock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_lock' mangled-name='cds_lfs_pop_lock' filepath='src/lfstack.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_lock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='73' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfs_head* cds_lfs_pop_all_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_all_blocking' mangled-name='cds_lfs_pop_all_blocking' filepath='src/lfstack.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='68' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* cds_lfs_pop_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_blocking' mangled-name='cds_lfs_pop_blocking' filepath='src/lfstack.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='63' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- bool cds_lfs_push(cds_lfs_stack_ptr_t, cds_lfs_node*) -->
+    <function-decl name='cds_lfs_push' mangled-name='cds_lfs_push' filepath='src/lfstack.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- bool cds_lfs_empty(cds_lfs_stack_ptr_t) -->
+    <function-decl name='cds_lfs_empty' mangled-name='cds_lfs_empty' filepath='src/lfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_empty'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='53' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- void __cds_lfs_init(__cds_lfs_stack*) -->
+    <function-decl name='__cds_lfs_init' mangled-name='__cds_lfs_init' filepath='src/lfstack.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_init'>
+      <!-- parameter of type '__cds_lfs_stack*' -->
+      <parameter type-id='type-id-32' name='s' filepath='src/lfstack.c' line='48' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_destroy(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_destroy' mangled-name='cds_lfs_destroy' filepath='src/lfstack.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_destroy'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='43' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_init(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_init' mangled-name='cds_lfs_init' filepath='src/lfstack.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init(cds_lfs_node*) -->
+    <function-decl name='cds_lfs_node_init' mangled-name='cds_lfs_node_init' filepath='src/lfstack.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init'>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='workqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct urcu_workqueue -->
+    <class-decl name='urcu_workqueue' size-in-bits='2048' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='54' column='1' id='type-id-43'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail urcu_workqueue::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-44' visibility='default' filepath='src/workqueue.c' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head urcu_workqueue::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-45' visibility='default' filepath='src/workqueue.c' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int urcu_workqueue::flags -->
+        <var-decl name='flags' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t urcu_workqueue::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int urcu_workqueue::qlen -->
+        <var-decl name='qlen' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t urcu_workqueue::tid -->
+        <var-decl name='tid' type-id='type-id-47' visibility='default' filepath='src/workqueue.c' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int urcu_workqueue::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int urcu_workqueue::loop_count -->
+        <var-decl name='loop_count' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void* urcu_workqueue::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='src/workqueue.c' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::grace_period_fct -->
+        <var-decl name='grace_period_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::initialize_worker_fct -->
+        <var-decl name='initialize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::finalize_worker_fct -->
+        <var-decl name='finalize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_pause_fct -->
+        <var-decl name='worker_before_pause_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_resume_fct -->
+        <var-decl name='worker_after_resume_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_wait_fct -->
+        <var-decl name='worker_before_wait_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_wake_up_fct -->
+        <var-decl name='worker_after_wake_up_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='76' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-45'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-8' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-50' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-46'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-1' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-50'/>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-22' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-47'/>
+    <!-- struct urcu_workqueue_completion -->
+    <class-decl name='urcu_workqueue_completion' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='79' column='1' id='type-id-51'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int urcu_workqueue_completion::barrier_count -->
+        <var-decl name='barrier_count' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- int32_t urcu_workqueue_completion::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- urcu_ref urcu_workqueue_completion::ref -->
+        <var-decl name='ref' type-id='type-id-52' visibility='default' filepath='src/workqueue.c' line='82' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_ref -->
+    <class-decl name='urcu_ref' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/ref.h' line='23' column='1' id='type-id-52'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- long int urcu_ref::refcount -->
+        <var-decl name='refcount' type-id='type-id-24' visibility='default' filepath='../include/urcu/ref.h' line='24' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_work -->
+    <class-decl name='urcu_work' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.h' line='53' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node urcu_work::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='src/workqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (urcu_work*)* urcu_work::func -->
+        <var-decl name='func' type-id='type-id-54' visibility='default' filepath='src/workqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- urcu_work* -->
+    <pointer-type-def type-id='type-id-53' size-in-bits='64' id='type-id-55'/>
+    <!-- urcu_workqueue* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-56'/>
+    <!-- urcu_workqueue_completion* -->
+    <pointer-type-def type-id='type-id-51' size-in-bits='64' id='type-id-57'/>
+    <!-- void (urcu_work*)* -->
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-54'/>
+    <!-- void (urcu_workqueue*, void*)* -->
+    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-49'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-48'/>
+    <!-- void urcu_workqueue_create_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_create_worker' mangled-name='urcu_workqueue_create_worker' filepath='src/workqueue.c' line='458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='458' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_resume_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_resume_worker' mangled-name='urcu_workqueue_resume_worker' filepath='src/workqueue.c' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_resume_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='451' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_pause_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_pause_worker' mangled-name='urcu_workqueue_pause_worker' filepath='src/workqueue.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_pause_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='440' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_flush_queued_work(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_flush_queued_work' mangled-name='urcu_workqueue_flush_queued_work' filepath='src/workqueue.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_flush_queued_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='427' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_completion(urcu_workqueue*, urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_queue_completion' mangled-name='urcu_workqueue_queue_completion' filepath='src/workqueue.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_completion'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='410' column='1'/>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='411' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_wait_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_wait_completion' mangled-name='urcu_workqueue_wait_completion' filepath='src/workqueue.c' line='397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_wait_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='397' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_destroy_completion' mangled-name='urcu_workqueue_destroy_completion' filepath='src/workqueue.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='392' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue_completion* urcu_workqueue_create_completion() -->
+    <function-decl name='urcu_workqueue_create_completion' mangled-name='urcu_workqueue_create_completion' filepath='src/workqueue.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_completion'>
+      <!-- urcu_workqueue_completion* -->
+      <return type-id='type-id-57'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_work(urcu_workqueue*, urcu_work*, void (urcu_work*)*) -->
+    <function-decl name='urcu_workqueue_queue_work' mangled-name='urcu_workqueue_queue_work' filepath='src/workqueue.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='346' column='1'/>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55' name='work' filepath='src/workqueue.c' line='347' column='1'/>
+      <!-- parameter of type 'void (urcu_work*)*' -->
+      <parameter type-id='type-id-54' name='func' filepath='src/workqueue.c' line='348' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_destroy' mangled-name='urcu_workqueue_destroy' filepath='src/workqueue.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='334' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue* urcu_workqueue_create(unsigned long int, int, void*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*) -->
+    <function-decl name='urcu_workqueue_create' mangled-name='urcu_workqueue_create' filepath='src/workqueue.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='flags' filepath='src/workqueue.c' line='269' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='cpu_affinity' filepath='src/workqueue.c' line='270' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='priv' filepath='src/workqueue.c' line='270' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='grace_period_fct' filepath='src/workqueue.c' line='271' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='initialize_worker_fct' filepath='src/workqueue.c' line='272' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='finalize_worker_fct' filepath='src/workqueue.c' line='273' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_wait_fct' filepath='src/workqueue.c' line='274' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_wake_up_fct' filepath='src/workqueue.c' line='275' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_pause_fct' filepath='src/workqueue.c' line='276' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_resume_fct' filepath='src/workqueue.c' line='277' column='1'/>
+      <!-- urcu_workqueue* -->
+      <return type-id='type-id-56'/>
+    </function-decl>
+    <!-- void (urcu_work*) -->
+    <function-type size-in-bits='64' id='type-id-58'>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_workqueue*, void*) -->
+    <function-type size-in-bits='64' id='type-id-59'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash.c' comp-dir-path='src' language='LANG_C99'>
+
+
+
+    <!-- cds_lfht_node*[64] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='4096' id='type-id-61'>
+      <!-- <anonymous range>[64] -->
+      <subrange length='64' type-id='type-id-22' id='type-id-62'/>
+
+    </array-type-def>
+    <!-- cds_lfht_node*[] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='infinite' id='type-id-63'>
+      <!-- <anonymous range>[] -->
+      <subrange length='infinite' type-id='type-id-22' id='type-id-64'/>
+
+    </array-type-def>
+    <!-- char[56] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='448' id='type-id-65'>
+      <!-- <anonymous range>[56] -->
+      <subrange length='56' type-id='type-id-22' id='type-id-66'/>
+
+    </array-type-def>
+    <!-- struct cds_lfht -->
+    <class-decl name='cds_lfht' size-in-bits='5248' is-struct='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='70' column='1' id='type-id-67'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int cds_lfht::max_nr_buckets -->
+        <var-decl name='max_nr_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- const cds_lfht_mm_type* cds_lfht::mm -->
+        <var-decl name='mm' type-id='type-id-68' visibility='default' filepath='../src/rculfhash-internal.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- const rcu_flavor_struct* cds_lfht::flavor -->
+        <var-decl name='flavor' type-id='type-id-69' visibility='default' filepath='../src/rculfhash-internal.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- long int cds_lfht::count -->
+        <var-decl name='count' type-id='type-id-24' visibility='default' filepath='../src/rculfhash-internal.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- pthread_mutex_t cds_lfht::resize_mutex -->
+        <var-decl name='resize_mutex' type-id='type-id-37' visibility='default' filepath='../src/rculfhash-internal.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- pthread_attr_t* cds_lfht::resize_attr -->
+        <var-decl name='resize_attr' type-id='type-id-70' visibility='default' filepath='../src/rculfhash-internal.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- unsigned int cds_lfht::in_progress_destroy -->
+        <var-decl name='in_progress_destroy' type-id='type-id-26' visibility='default' filepath='../src/rculfhash-internal.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- unsigned long int cds_lfht::resize_target -->
+        <var-decl name='resize_target' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- int cds_lfht::resize_initiated -->
+        <var-decl name='resize_initiated' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='89' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='800'>
+        <!-- int cds_lfht::flags -->
+        <var-decl name='flags' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- unsigned long int cds_lfht::min_alloc_buckets_order -->
+        <var-decl name='min_alloc_buckets_order' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- unsigned long int cds_lfht::min_nr_alloc_buckets -->
+        <var-decl name='min_nr_alloc_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- ht_items_count* cds_lfht::split_count -->
+        <var-decl name='split_count' type-id='type-id-71' visibility='default' filepath='../src/rculfhash-internal.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- unsigned long int cds_lfht::size -->
+        <var-decl name='size' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='102' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../src/rculfhash-internal.h' line='107' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+        <var-decl name='' type-id='type-id-73' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_mm_type -->
+    <class-decl name='cds_lfht_mm_type' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='120' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht* (unsigned long int, unsigned long int)* cds_lfht_mm_type::alloc_cds_lfht -->
+        <var-decl name='alloc_cds_lfht' type-id='type-id-75' visibility='default' filepath='../include/urcu/rculfhash.h' line='121' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* cds_lfht_mm_type::alloc_bucket_table -->
+        <var-decl name='alloc_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='123' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void ()* cds_lfht_mm_type::free_bucket_table -->
+        <var-decl name='free_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='124' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht_mm_type::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../include/urcu/rculfhash.h' line='125' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_node -->
+    <class-decl name='cds_lfht_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='63' column='1' id='type-id-77'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_node::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int cds_lfht_node::reverse_hash -->
+        <var-decl name='reverse_hash' type-id='type-id-22' visibility='default' filepath='../include/urcu/rculfhash.h' line='65' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-78'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-80' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-6' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-81' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-83'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef pthread_attr_t pthread_attr_t -->
+    <typedef-decl name='pthread_attr_t' type-id='type-id-85' filepath='/usr/include/bits/pthreadtypes.h' line='62' column='1' id='type-id-86'/>
+    <!-- union pthread_attr_t -->
+    <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='56' column='1' id='type-id-85'>
+      <data-member access='private'>
+        <!-- char pthread_attr_t::__size[56] -->
+        <var-decl name='__size' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int pthread_attr_t::__align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='59' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct ht_items_count -->
+    <class-decl name='ht_items_count' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/rculfhash.c' line='338' column='1' id='type-id-87'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int ht_items_count::add -->
+        <var-decl name='add' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='339' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int ht_items_count::del -->
+        <var-decl name='del' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='339' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='113' column='1' id='type-id-73'>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_order[64] -->
+        <var-decl name='tbl_order' type-id='type-id-61' visibility='default' filepath='../src/rculfhash-internal.h' line='122' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_chunk[] -->
+        <var-decl name='tbl_chunk' type-id='type-id-63' visibility='default' filepath='../src/rculfhash-internal.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_mmap -->
+        <var-decl name='tbl_mmap' type-id='type-id-60' visibility='default' filepath='../src/rculfhash-internal.h' line='140' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct cds_lfht_iter -->
+    <class-decl name='cds_lfht_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='69' column='1' id='type-id-88'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_iter::node -->
+        <var-decl name='node' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfht_node* cds_lfht_iter::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef int (cds_lfht_node*, void*)* cds_lfht_match_fct -->
+    <typedef-decl name='cds_lfht_match_fct' type-id='type-id-89' filepath='../include/urcu/rculfhash.h' line='98' column='1' id='type-id-90'/>
+    <!-- cds_lfht* -->
+    <pointer-type-def type-id='type-id-67' size-in-bits='64' id='type-id-91'/>
+    <!-- cds_lfht* (unsigned long int, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-92' size-in-bits='64' id='type-id-75'/>
+    <!-- cds_lfht_iter* -->
+    <pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-93'/>
+    <!-- cds_lfht_node* -->
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-60'/>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-94' size-in-bits='64' id='type-id-72'/>
+    <!-- const cds_lfht_mm_type -->
+    <qualified-type-def type-id='type-id-74' const='yes' id='type-id-95'/>
+    <!-- const cds_lfht_mm_type* -->
+    <pointer-type-def type-id='type-id-95' size-in-bits='64' id='type-id-68'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-78' const='yes' id='type-id-96'/>
+    <!-- const rcu_flavor_struct* -->
+    <pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-69'/>
+    <!-- ht_items_count* -->
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-71'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-97' size-in-bits='64' id='type-id-80'/>
+    <!-- int (cds_lfht_node*, void*)* -->
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-89'/>
+    <!-- long int* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-99'/>
+    <!-- pthread_attr_t* -->
+    <pointer-type-def type-id='type-id-86' size-in-bits='64' id='type-id-70'/>
+    <!-- pthread_attr_t** -->
+    <pointer-type-def type-id='type-id-70' size-in-bits='64' id='type-id-100'/>
+    <!-- unsigned long int* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-101'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-102'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-103' size-in-bits='64' id='type-id-79'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-104' size-in-bits='64' id='type-id-76'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-105' size-in-bits='64' id='type-id-82'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-81'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-84'/>
+    <!-- void cds_lfht_resize(cds_lfht*, unsigned long int) -->
+    <function-decl name='cds_lfht_resize' mangled-name='cds_lfht_resize' filepath='src/rculfhash.c' line='2028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_resize'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='2028' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size' filepath='src/rculfhash.c' line='2028' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_count_nodes(cds_lfht*, long int*, unsigned long int*, long int*) -->
+    <function-decl name='cds_lfht_count_nodes' mangled-name='cds_lfht_count_nodes' filepath='src/rculfhash.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_count_nodes'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1906' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-99' name='approx_before' filepath='src/rculfhash.c' line='1907' column='1'/>
+      <!-- parameter of type 'unsigned long int*' -->
+      <parameter type-id='type-id-101' name='count' filepath='src/rculfhash.c' line='1908' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-99' name='approx_after' filepath='src/rculfhash.c' line='1909' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfht_destroy(cds_lfht*, pthread_attr_t**) -->
+    <function-decl name='cds_lfht_destroy' mangled-name='cds_lfht_destroy' filepath='src/rculfhash.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_destroy'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1881' column='1'/>
+      <!-- parameter of type 'pthread_attr_t**' -->
+      <parameter type-id='type-id-100' name='attr' filepath='src/rculfhash.c' line='1881' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_is_node_deleted(cds_lfht_node*) -->
+    <function-decl name='cds_lfht_is_node_deleted' mangled-name='cds_lfht_is_node_deleted' filepath='src/rculfhash.c' line='1838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_is_node_deleted'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1838' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_del(cds_lfht*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_del' mangled-name='cds_lfht_del' filepath='src/rculfhash.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_del'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1822' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1822' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_replace(cds_lfht*, cds_lfht_iter*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_replace' mangled-name='cds_lfht_replace' filepath='src/rculfhash.c' line='1801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1801' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='old_iter' filepath='src/rculfhash.c' line='1802' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1803' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1804' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1805' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='new_node' filepath='src/rculfhash.c' line='1806' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_replace(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_replace' mangled-name='cds_lfht_add_replace' filepath='src/rculfhash.c' line='1778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1778' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1779' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1780' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1781' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1782' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_unique(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_unique' mangled-name='cds_lfht_add_unique' filepath='src/rculfhash.c' line='1761' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_unique'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1761' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1762' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1763' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1764' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1765' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- void cds_lfht_add(cds_lfht*, unsigned long int, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add' mangled-name='cds_lfht_add' filepath='src/rculfhash.c' line='1750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1750' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1750' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1751' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_first(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_first' mangled-name='cds_lfht_first' filepath='src/rculfhash.c' line='1739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_first'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1739' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1739' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next' mangled-name='cds_lfht_next' filepath='src/rculfhash.c' line='1715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1715' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1716' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next_duplicate(cds_lfht*, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next_duplicate' mangled-name='cds_lfht_next_duplicate' filepath='src/rculfhash.c' line='1680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next_duplicate'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1680' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1681' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1682' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1682' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_lookup(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_lookup' mangled-name='cds_lfht_lookup' filepath='src/rculfhash.c' line='1640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_lookup'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1640' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1640' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1641' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1641' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1642' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfht* _cds_lfht_new(unsigned long int, unsigned long int, unsigned long int, int, const cds_lfht_mm_type*, const rcu_flavor_struct*, pthread_attr_t*) -->
+    <function-decl name='_cds_lfht_new' mangled-name='_cds_lfht_new' filepath='src/rculfhash.c' line='1581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_cds_lfht_new'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='init_size' filepath='src/rculfhash.c' line='1581' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='min_nr_alloc_buckets' filepath='src/rculfhash.c' line='1582' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='max_nr_buckets' filepath='src/rculfhash.c' line='1583' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='flags' filepath='src/rculfhash.c' line='1584' column='1'/>
+      <!-- parameter of type 'const cds_lfht_mm_type*' -->
+      <parameter type-id='type-id-68' name='mm' filepath='src/rculfhash.c' line='1585' column='1'/>
+      <!-- parameter of type 'const rcu_flavor_struct*' -->
+      <parameter type-id='type-id-69' name='flavor' filepath='src/rculfhash.c' line='1586' column='1'/>
+      <!-- parameter of type 'pthread_attr_t*' -->
+      <parameter type-id='type-id-70' name='attr' filepath='src/rculfhash.c' line='1587' column='1'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-91'/>
+    </function-decl>
+    <!-- int cds_lfht_get_count_order_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_get_count_order_ulong' mangled-name='cds_lfht_get_count_order_ulong' filepath='src/rculfhash.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_get_count_order_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='598' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- unsigned int cds_lfht_fls_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_fls_ulong' mangled-name='cds_lfht_fls_ulong' filepath='src/rculfhash.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_fls_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='572' column='1'/>
+      <!-- unsigned int -->
+      <return type-id='type-id-26'/>
+    </function-decl>
+    <!-- cds_lfht* (unsigned long int, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-92'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-91'/>
+    </function-type>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-94'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-type>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-97'>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- int (cds_lfht_node*, void*) -->
+    <function-type size-in-bits='64' id='type-id-98'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-103'>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-104'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-105'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-102'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-106'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-84'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-107'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-order.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_order -->
+    <var-decl name='cds_lfht_mm_order' type-id='type-id-95' mangled-name='cds_lfht_mm_order' visibility='default' filepath='../include/urcu/rculfhash.h' line='129' column='1' elf-symbol-id='cds_lfht_mm_order'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-chunk.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_chunk -->
+    <var-decl name='cds_lfht_mm_chunk' type-id='type-id-95' mangled-name='cds_lfht_mm_chunk' visibility='default' filepath='../include/urcu/rculfhash.h' line='130' column='1' elf-symbol-id='cds_lfht_mm_chunk'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-mmap.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_mmap -->
+    <var-decl name='cds_lfht_mm_mmap' type-id='type-id-95' mangled-name='cds_lfht_mm_mmap' visibility='default' filepath='../include/urcu/rculfhash.h' line='131' column='1' elf-symbol-id='cds_lfht_mm_mmap'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='384' id='type-id-108'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-22' id='type-id-109'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-110'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-111'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-26' size-in-bits='64' id='type-id-112'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-22' id='type-id-113'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-114' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-115'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-114'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-116' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-108' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-110' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-116'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-117' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-112' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-112' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-112' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-117'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-111' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-118' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-118'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-119'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-120' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-121' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-120'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-121'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-119' const='yes' id='type-id-122'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-122' size-in-bits='64' id='type-id-123'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-124'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-37' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-115' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-124' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-123' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-124' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-124' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-123' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-124' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-common.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-common.so.6.xml
new file mode 100644 (file)
index 0000000..07daf21
--- /dev/null
@@ -0,0 +1,901 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-common.so.6'>
+  <elf-needed>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_blocking -->
+    <elf-symbol name='__cds_wfcq_first_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_nonblocking -->
+    <elf-symbol name='__cds_wfcq_first_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_init -->
+    <elf-symbol name='__cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_blocking -->
+    <elf-symbol name='__cds_wfcq_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_nonblocking -->
+    <elf-symbol name='__cds_wfcq_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_blocking -->
+    <elf-symbol name='__cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_nonblocking -->
+    <elf-symbol name='__cds_wfcq_splice_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_init -->
+    <elf-symbol name='__cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_all -->
+    <elf-symbol name='__cds_wfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_blocking -->
+    <elf-symbol name='__cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_lock -->
+    <elf-symbol name='cds_wfcq_dequeue_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_unlock -->
+    <elf-symbol name='cds_wfcq_dequeue_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_destroy -->
+    <elf-symbol name='cds_wfcq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_empty -->
+    <elf-symbol name='cds_wfcq_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_enqueue -->
+    <elf-symbol name='cds_wfcq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_init -->
+    <elf-symbol name='cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_node_init -->
+    <elf-symbol name='cds_wfcq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_splice_blocking -->
+    <elf-symbol name='cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_dequeue_blocking -->
+    <elf-symbol name='cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_destroy -->
+    <elf-symbol name='cds_wfq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_enqueue -->
+    <elf-symbol name='cds_wfq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_init -->
+    <elf-symbol name='cds_wfq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_node_init -->
+    <elf-symbol name='cds_wfq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_destroy -->
+    <elf-symbol name='cds_wfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_empty -->
+    <elf-symbol name='cds_wfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_first -->
+    <elf-symbol name='cds_wfs_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_init -->
+    <elf-symbol name='cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_blocking -->
+    <elf-symbol name='cds_wfs_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_nonblocking -->
+    <elf-symbol name='cds_wfs_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_node_init -->
+    <elf-symbol name='cds_wfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_all_blocking -->
+    <elf-symbol name='cds_wfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_blocking -->
+    <elf-symbol name='cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_lock -->
+    <elf-symbol name='cds_wfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_unlock -->
+    <elf-symbol name='cds_wfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_push -->
+    <elf-symbol name='cds_wfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='wfqueue.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct cds_wfq_node -->
+    <class-decl name='cds_wfq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='48' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_node::next -->
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='49' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfq_queue -->
+    <class-decl name='cds_wfq_queue' size-in-bits='512' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='52' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_queue::head -->
+        <var-decl name='head' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfq_node** cds_wfq_queue::tail -->
+        <var-decl name='tail' type-id='type-id-13' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- cds_wfq_node cds_wfq_queue::dummy -->
+        <var-decl name='dummy' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- pthread_mutex_t cds_wfq_queue::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-15' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-14'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-15'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-16' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-16'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-17' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-18' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-17'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-18'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-19'/>
+    <!-- cds_wfq_node* -->
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfq_node** -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-13'/>
+    <!-- cds_wfq_queue* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-20'/>
+    <!-- cds_wfq_node* cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_dequeue_blocking' mangled-name='cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='59' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- cds_wfq_node* __cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='__cds_wfq_dequeue_blocking' mangled-name='__cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='54' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- void cds_wfq_enqueue(cds_wfq_queue*, cds_wfq_node*) -->
+    <function-decl name='cds_wfq_enqueue' mangled-name='cds_wfq_enqueue' filepath='src/wfqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_enqueue'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_destroy(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_destroy' mangled-name='cds_wfq_destroy' filepath='src/wfqueue.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_destroy'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_init(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_init' mangled-name='cds_wfq_init' filepath='src/wfqueue.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_init'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_node_init(cds_wfq_node*) -->
+    <function-decl name='cds_wfq_node_init' mangled-name='cds_wfq_node_init' filepath='src/wfqueue.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_node_init'>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='34' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfcqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-21'/>
+    <!-- unnamed&#45;enum&#45;underlying&#45;type -->
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-22'/>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfcq_head_ptr_t -->
+    <typedef-decl name='cds_wfcq_head_ptr_t' type-id='type-id-25' filepath='../include/urcu/wfcqueue.h' line='86' column='1' id='type-id-26'/>
+    <!-- union {__cds_wfcq_head* _h; cds_wfcq_head* h;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='83' column='1' id='type-id-25'>
+      <data-member access='private'>
+        <!-- __cds_wfcq_head* _h -->
+        <var-decl name='_h' type-id='type-id-27' visibility='default' filepath='../include/urcu/wfcqueue.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfcq_head* h -->
+        <var-decl name='h' type-id='type-id-28' visibility='default' filepath='../include/urcu/wfcqueue.h' line='85' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfcq_head -->
+    <class-decl name='__cds_wfcq_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='68' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node __cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- enum cds_wfcq_ret -->
+    <enum-decl name='cds_wfcq_ret' filepath='../include/urcu/wfcqueue.h' line='48' column='1' id='type-id-32'>
+      <underlying-type type-id='type-id-22'/>
+      <enumerator name='CDS_WFCQ_RET_WOULDBLOCK' value='-1'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_EMPTY' value='0'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_NON_EMPTY' value='1'/>
+      <enumerator name='CDS_WFCQ_RET_SRC_EMPTY' value='2'/>
+    </enum-decl>
+    <!-- __cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-27'/>
+    <!-- cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-28'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-24'/>
+    <!-- cds_wfcq_tail* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-33'/>
+    <!-- int* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-34'/>
+    <!-- cds_wfcq_node* __cds_wfcq_next_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_nonblocking' mangled-name='__cds_wfcq_next_nonblocking' filepath='src/wfcqueue.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='179' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='180' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='181' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_next_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_blocking' mangled-name='__cds_wfcq_next_blocking' filepath='src/wfcqueue.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='171' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='172' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='173' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_nonblocking' mangled-name='__cds_wfcq_first_nonblocking' filepath='src/wfcqueue.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='164' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='165' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_blocking' mangled-name='__cds_wfcq_first_blocking' filepath='src/wfcqueue.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='157' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='158' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_nonblocking' mangled-name='__cds_wfcq_splice_nonblocking' filepath='src/wfcqueue.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='147' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='148' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='149' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='150' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_blocking' mangled-name='__cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='137' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='138' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='139' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='140' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_nonblocking' mangled-name='__cds_wfcq_dequeue_with_state_nonblocking' filepath='src/wfcqueue.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='129' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='130' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='131' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_nonblocking' mangled-name='__cds_wfcq_dequeue_nonblocking' filepath='src/wfcqueue.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='122' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='123' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_blocking' mangled-name='__cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='114' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='115' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='116' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_blocking' mangled-name='__cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='107' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='108' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret cds_wfcq_splice_blocking(cds_wfcq_head*, cds_wfcq_tail*, cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_splice_blocking' mangled-name='cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='dest_q_head' filepath='src/wfcqueue.c' line='97' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='98' column='1'/>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='src_q_head' filepath='src/wfcqueue.c' line='99' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='100' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head*, cds_wfcq_tail*, int*) -->
+    <function-decl name='cds_wfcq_dequeue_with_state_blocking' mangled-name='cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='89' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='90' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='91' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_blocking(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_blocking' mangled-name='cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='82' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='83' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_unlock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_unlock' mangled-name='cds_wfcq_dequeue_unlock' filepath='src/wfcqueue.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_unlock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='75' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='76' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_lock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_lock' mangled-name='cds_wfcq_dequeue_lock' filepath='src/wfcqueue.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_lock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='69' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='70' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- bool cds_wfcq_enqueue(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_enqueue' mangled-name='cds_wfcq_enqueue' filepath='src/wfcqueue.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_enqueue'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='62' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='63' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='64' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- bool cds_wfcq_empty(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_empty' mangled-name='cds_wfcq_empty' filepath='src/wfcqueue.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_empty'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='55' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='56' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfcq_init(__cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_init' mangled-name='__cds_wfcq_init' filepath='src/wfcqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_init'>
+      <!-- parameter of type '__cds_wfcq_head*' -->
+      <parameter type-id='type-id-27' name='head' filepath='src/wfcqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_destroy(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_destroy' mangled-name='cds_wfcq_destroy' filepath='src/wfcqueue.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_destroy'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='43' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_init(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_init' mangled-name='cds_wfcq_init' filepath='src/wfcqueue.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_init'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='37' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_node_init(cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_node_init' mangled-name='cds_wfcq_node_init' filepath='src/wfcqueue.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_node_init'>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='32' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_wfs_head -->
+    <class-decl name='cds_wfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='82' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node cds_wfs_head::node -->
+        <var-decl name='node' type-id='type-id-36' visibility='default' filepath='../include/urcu/wfstack.h' line='83' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_node -->
+    <class-decl name='cds_wfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='72' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node* cds_wfs_node::next -->
+        <var-decl name='next' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfstack.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfs_stack_ptr_t -->
+    <typedef-decl name='cds_wfs_stack_ptr_t' type-id='type-id-38' filepath='../include/urcu/wfstack.h' line='103' column='1' id='type-id-39'/>
+    <!-- union {__cds_wfs_stack* _s; cds_wfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='100' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __cds_wfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-40' visibility='default' filepath='../include/urcu/wfstack.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfs_stack* s -->
+        <var-decl name='s' type-id='type-id-41' visibility='default' filepath='../include/urcu/wfstack.h' line='102' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfs_stack -->
+    <class-decl name='__cds_wfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='86' column='1' id='type-id-42'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* __cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='87' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_stack -->
+    <class-decl name='cds_wfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='90' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfstack.h' line='92' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-40'/>
+    <!-- cds_wfs_head* -->
+    <pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-43'/>
+    <!-- cds_wfs_node* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-41'/>
+    <!-- cds_wfs_head* __cds_wfs_pop_all(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_all' mangled-name='__cds_wfs_pop_all' filepath='src/wfstack.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_all'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='126' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_nonblocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_nonblocking' mangled-name='__cds_wfs_pop_with_state_nonblocking' filepath='src/wfstack.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='120' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='121' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_nonblocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_nonblocking' mangled-name='__cds_wfs_pop_nonblocking' filepath='src/wfstack.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='114' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_blocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_blocking' mangled-name='__cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='108' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='109' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_blocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_blocking' mangled-name='__cds_wfs_pop_blocking' filepath='src/wfstack.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='102' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_unlock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_unlock' mangled-name='cds_wfs_pop_unlock' filepath='src/wfstack.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_unlock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='97' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_lock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_lock' mangled-name='cds_wfs_pop_lock' filepath='src/wfstack.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_lock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='92' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_nonblocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_nonblocking' mangled-name='cds_wfs_next_nonblocking' filepath='src/wfstack.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_nonblocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='87' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_blocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_blocking' mangled-name='cds_wfs_next_blocking' filepath='src/wfstack.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_blocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='82' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_first(cds_wfs_head*) -->
+    <function-decl name='cds_wfs_first' mangled-name='cds_wfs_first' filepath='src/wfstack.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_first'>
+      <!-- parameter of type 'cds_wfs_head*' -->
+      <parameter type-id='type-id-43' name='head' filepath='src/wfstack.c' line='77' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_head* cds_wfs_pop_all_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_all_blocking' mangled-name='cds_wfs_pop_all_blocking' filepath='src/wfstack.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='72' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_with_state_blocking(cds_wfs_stack*, int*) -->
+    <function-decl name='cds_wfs_pop_with_state_blocking' mangled-name='cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_blocking' mangled-name='cds_wfs_pop_blocking' filepath='src/wfstack.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='61' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- int cds_wfs_push(cds_wfs_stack_ptr_t, cds_wfs_node*) -->
+    <function-decl name='cds_wfs_push' mangled-name='cds_wfs_push' filepath='src/wfstack.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_push'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- bool cds_wfs_empty(cds_wfs_stack_ptr_t) -->
+    <function-decl name='cds_wfs_empty' mangled-name='cds_wfs_empty' filepath='src/wfstack.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_empty'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='51' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfs_init(__cds_wfs_stack*) -->
+    <function-decl name='__cds_wfs_init' mangled-name='__cds_wfs_init' filepath='src/wfstack.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_init'>
+      <!-- parameter of type '__cds_wfs_stack*' -->
+      <parameter type-id='type-id-40' name='s' filepath='src/wfstack.c' line='46' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_destroy(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_destroy' mangled-name='cds_wfs_destroy' filepath='src/wfstack.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_destroy'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='41' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_init(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_init' mangled-name='cds_wfs_init' filepath='src/wfstack.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_init'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='36' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_node_init(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_node_init' mangled-name='cds_wfs_node_init' filepath='src/wfstack.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_node_init'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='31' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-45'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-46'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-47'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-48'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-49'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-50'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-51' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-52'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-51'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-45' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-54' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-54'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-48' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-56' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-57'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-56'/>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-57' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-14' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-52' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml
new file mode 100644 (file)
index 0000000..95c4c19
--- /dev/null
@@ -0,0 +1,911 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-mb.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_mb -->
+    <elf-symbol name='call_rcu_after_fork_child_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_mb -->
+    <elf-symbol name='call_rcu_after_fork_parent_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_call_rcu_after_fork_parent' is-defined='yes'/>
+    <!-- call_rcu_before_fork_mb -->
+    <elf-symbol name='call_rcu_before_fork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_mb -->
+    <elf-symbol name='call_rcu_data_free_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_call_rcu_data_free' is-defined='yes'/>
+    <!-- call_rcu_mb -->
+    <elf-symbol name='call_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_mb -->
+    <elf-symbol name='create_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_create_call_rcu_data' is-defined='yes'/>
+    <!-- defer_rcu_mb -->
+    <elf-symbol name='defer_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_free_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_data_mb -->
+    <elf-symbol name='get_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_mb -->
+    <elf-symbol name='get_call_rcu_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_get_call_rcu_thread' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_mb -->
+    <elf-symbol name='get_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_mb -->
+    <elf-symbol name='get_default_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_mb -->
+    <elf-symbol name='get_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_get_thread_call_rcu_data' is-defined='yes'/>
+    <!-- rcu_barrier_mb -->
+    <elf-symbol name='rcu_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_mb -->
+    <elf-symbol name='rcu_defer_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_mb -->
+    <elf-symbol name='rcu_defer_barrier_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_mb -->
+    <elf-symbol name='rcu_defer_exit_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_exit' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_mb -->
+    <elf-symbol name='rcu_defer_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_register_thread' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_mb -->
+    <elf-symbol name='rcu_defer_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_mb -->
+    <elf-symbol name='rcu_init_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_init' is-defined='yes'/>
+    <!-- rcu_read_lock_mb -->
+    <elf-symbol name='rcu_read_lock_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_mb -->
+    <elf-symbol name='rcu_read_ongoing_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_read_ongoing' is-defined='yes'/>
+    <!-- rcu_read_unlock_mb -->
+    <elf-symbol name='rcu_read_unlock_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_read_unlock' is-defined='yes'/>
+    <!-- rcu_register_thread_mb -->
+    <elf-symbol name='rcu_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_mb -->
+    <elf-symbol name='rcu_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_mb -->
+    <elf-symbol name='set_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_mb -->
+    <elf-symbol name='set_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_mb -->
+    <elf-symbol name='synchronize_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_synchronize_rcu' is-defined='yes'/>
+    <!-- urcu_mb_barrier -->
+    <elf-symbol name='urcu_mb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_barrier_mb' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu -->
+    <elf-symbol name='urcu_mb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_mb' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_mb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_mb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_mb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_mb' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_data_free -->
+    <elf-symbol name='urcu_mb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_create_call_rcu_data -->
+    <elf-symbol name='urcu_mb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_barrier -->
+    <elf-symbol name='urcu_mb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_barrier_thread -->
+    <elf-symbol name='urcu_mb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_exit -->
+    <elf-symbol name='urcu_mb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_rcu -->
+    <elf-symbol name='urcu_mb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_register_thread -->
+    <elf-symbol name='urcu_mb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_unregister_thread -->
+    <elf-symbol name='urcu_mb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_unregister_thread_mb' is-defined='yes'/>
+    <!-- urcu_mb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_mb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_init -->
+    <elf-symbol name='urcu_mb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_lock -->
+    <elf-symbol name='urcu_mb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_ongoing -->
+    <elf-symbol name='urcu_mb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_unlock -->
+    <elf-symbol name='urcu_mb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_mb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_register_rculfhash_atfork_mb' is-defined='yes'/>
+    <!-- urcu_mb_register_thread -->
+    <elf-symbol name='urcu_mb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_mb' is-defined='yes'/>
+    <!-- urcu_mb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_cpu_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_mb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_thread_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_synchronize_rcu -->
+    <elf-symbol name='urcu_mb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_mb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_unregister_thread -->
+    <elf-symbol name='urcu_mb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_mb' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_mb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_mb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_unregister_rculfhash_atfork' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_mb -->
+    <elf-symbol name='rcu_flavor_mb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_flavor' is-defined='yes'/>
+    <!-- rcu_gp_mb -->
+    <elf-symbol name='rcu_gp_mb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_mb -->
+    <elf-symbol name='rcu_reader_mb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_flavor -->
+    <elf-symbol name='urcu_mb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_gp -->
+    <elf-symbol name='urcu_mb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_mb' is-defined='yes'/>
+    <!-- urcu_mb_reader -->
+    <elf-symbol name='urcu_mb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_mb' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_mb_gp -->
+    <var-decl name='urcu_mb_gp' type-id='type-id-10' mangled-name='urcu_mb_gp' visibility='default' filepath='../include/urcu/static/urcu-mb.h' line='60' column='1' elf-symbol-id='urcu_mb_gp'/>
+    <!-- urcu_reader urcu_mb_reader -->
+    <var-decl name='urcu_mb_reader' type-id='type-id-13' mangled-name='urcu_mb_reader' visibility='default' filepath='../include/urcu/static/urcu-mb.h' line='62' column='1' elf-symbol-id='urcu_mb_reader'/>
+    <!-- const rcu_flavor_struct urcu_mb_flavor -->
+    <var-decl name='urcu_mb_flavor' type-id='type-id-40' mangled-name='rcu_flavor_mb' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_mb'/>
+    <!-- void urcu_mb_defer_exit() -->
+    <function-decl name='urcu_mb_defer_exit' mangled-name='rcu_defer_exit_mb' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_unregister_thread() -->
+    <function-decl name='urcu_mb_defer_unregister_thread' mangled-name='urcu_mb_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_defer_register_thread() -->
+    <function-decl name='urcu_mb_defer_register_thread' mangled-name='rcu_defer_register_thread_mb' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_mb_defer_rcu' mangled-name='defer_rcu_mb' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_mb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_barrier() -->
+    <function-decl name='urcu_mb_defer_barrier' mangled-name='rcu_defer_barrier_mb' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_barrier_thread() -->
+    <function-decl name='urcu_mb_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_mb' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_mb_unregister_rculfhash_atfork' mangled-name='urcu_unregister_rculfhash_atfork_mb' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_mb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_mb_register_rculfhash_atfork' mangled-name='urcu_mb_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_mb_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_mb' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_mb_call_rcu_after_fork_parent' mangled-name='call_rcu_after_fork_parent_mb' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_before_fork() -->
+    <function-decl name='urcu_mb_call_rcu_before_fork' mangled-name='urcu_mb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_barrier() -->
+    <function-decl name='urcu_mb_barrier' mangled-name='urcu_mb_barrier' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_mb_free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_mb_call_rcu_data_free' mangled-name='call_rcu_data_free_mb' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_mb_call_rcu' mangled-name='urcu_mb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_mb_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_mb_set_thread_call_rcu_data' mangled-name='urcu_mb_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_thread_call_rcu_data' mangled-name='get_thread_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_call_rcu_data' mangled-name='urcu_mb_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_default_call_rcu_data' mangled-name='urcu_mb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_mb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_mb_set_cpu_call_rcu_data' mangled-name='urcu_mb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_mb_create_call_rcu_data' mangled-name='create_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_mb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_mb_get_call_rcu_thread' mangled-name='get_call_rcu_thread_mb' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_mb_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_mb_unregister_thread() -->
+    <function-decl name='urcu_mb_unregister_thread' mangled-name='urcu_mb_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_register_thread() -->
+    <function-decl name='urcu_mb_register_thread' mangled-name='urcu_mb_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_read_ongoing() -->
+    <function-decl name='urcu_mb_read_ongoing' mangled-name='rcu_read_ongoing_mb' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_read_unlock() -->
+    <function-decl name='urcu_mb_read_unlock' mangled-name='rcu_read_unlock_mb' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_read_lock() -->
+    <function-decl name='urcu_mb_read_lock' mangled-name='rcu_read_lock_mb' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_synchronize_rcu() -->
+    <function-decl name='urcu_mb_synchronize_rcu' mangled-name='synchronize_rcu_mb' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_init() -->
+    <function-decl name='urcu_mb_init' mangled-name='rcu_init_mb' filepath='src/urcu.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-memb.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-memb.so.6.xml
new file mode 100644 (file)
index 0000000..b97b4c4
--- /dev/null
@@ -0,0 +1,917 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-memb.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_memb -->
+    <elf-symbol name='call_rcu_after_fork_child_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_memb -->
+    <elf-symbol name='call_rcu_after_fork_parent_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_memb -->
+    <elf-symbol name='call_rcu_before_fork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_memb -->
+    <elf-symbol name='call_rcu_data_free_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_memb -->
+    <elf-symbol name='call_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_memb -->
+    <elf-symbol name='create_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_memb -->
+    <elf-symbol name='defer_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_memb -->
+    <elf-symbol name='get_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_memb -->
+    <elf-symbol name='get_call_rcu_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_memb -->
+    <elf-symbol name='get_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_memb -->
+    <elf-symbol name='get_default_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_memb -->
+    <elf-symbol name='get_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_thread_call_rcu_data' is-defined='yes'/>
+    <!-- rcu_barrier_memb -->
+    <elf-symbol name='rcu_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_barrier' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_memb -->
+    <elf-symbol name='rcu_defer_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_memb -->
+    <elf-symbol name='rcu_defer_barrier_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_memb -->
+    <elf-symbol name='rcu_defer_exit_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_memb -->
+    <elf-symbol name='rcu_defer_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_memb -->
+    <elf-symbol name='rcu_defer_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_unregister_thread' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_memb -->
+    <elf-symbol name='rcu_init_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_init' is-defined='yes'/>
+    <!-- rcu_read_lock_memb -->
+    <elf-symbol name='rcu_read_lock_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_memb -->
+    <elf-symbol name='rcu_read_ongoing_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_memb -->
+    <elf-symbol name='rcu_read_unlock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_memb -->
+    <elf-symbol name='rcu_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_memb -->
+    <elf-symbol name='rcu_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_memb -->
+    <elf-symbol name='set_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_memb -->
+    <elf-symbol name='set_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_set_thread_call_rcu_data' is-defined='yes'/>
+    <!-- synchronize_rcu_memb -->
+    <elf-symbol name='synchronize_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_barrier -->
+    <elf-symbol name='urcu_memb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu -->
+    <elf-symbol name='urcu_memb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_memb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_data_free -->
+    <elf-symbol name='urcu_memb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_data_free_memb' is-defined='yes'/>
+    <!-- urcu_memb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier -->
+    <elf-symbol name='urcu_memb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier_thread -->
+    <elf-symbol name='urcu_memb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_exit -->
+    <elf-symbol name='urcu_memb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_rcu -->
+    <elf-symbol name='urcu_memb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_register_thread -->
+    <elf-symbol name='urcu_memb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_unregister_thread -->
+    <elf-symbol name='urcu_memb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='free_all_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_memb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_init -->
+    <elf-symbol name='urcu_memb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_lock -->
+    <elf-symbol name='urcu_memb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_ongoing -->
+    <elf-symbol name='urcu_memb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_ongoing_memb' is-defined='yes'/>
+    <!-- urcu_memb_read_unlock -->
+    <elf-symbol name='urcu_memb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_unlock_memb' is-defined='yes'/>
+    <!-- urcu_memb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_thread -->
+    <elf-symbol name='urcu_memb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_synchronize_rcu -->
+    <elf-symbol name='urcu_memb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_unregister_rculfhash_atfork_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_thread -->
+    <elf-symbol name='urcu_memb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_memb' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_memb -->
+    <elf-symbol name='rcu_flavor_memb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_flavor' is-defined='yes'/>
+    <!-- rcu_gp_memb -->
+    <elf-symbol name='rcu_gp_memb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_has_sys_membarrier_memb -->
+    <elf-symbol name='rcu_has_sys_membarrier_memb' size='4' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_has_sys_membarrier' is-defined='yes'/>
+    <!-- rcu_reader_memb -->
+    <elf-symbol name='rcu_reader_memb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_flavor -->
+    <elf-symbol name='urcu_memb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_gp -->
+    <elf-symbol name='urcu_memb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_memb' is-defined='yes'/>
+    <!-- urcu_memb_has_sys_membarrier -->
+    <elf-symbol name='urcu_memb_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_reader -->
+    <elf-symbol name='urcu_memb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_memb' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- int urcu_memb_has_sys_membarrier -->
+    <var-decl name='urcu_memb_has_sys_membarrier' type-id='type-id-5' mangled-name='rcu_has_sys_membarrier_memb' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='72' column='1' elf-symbol-id='rcu_has_sys_membarrier_memb'/>
+    <!-- urcu_gp urcu_memb_gp -->
+    <var-decl name='urcu_memb_gp' type-id='type-id-10' mangled-name='urcu_memb_gp' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='83' column='1' elf-symbol-id='urcu_memb_gp'/>
+    <!-- urcu_reader urcu_memb_reader -->
+    <var-decl name='urcu_memb_reader' type-id='type-id-13' mangled-name='urcu_memb_reader' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='85' column='1' elf-symbol-id='urcu_memb_reader'/>
+    <!-- const rcu_flavor_struct urcu_memb_flavor -->
+    <var-decl name='urcu_memb_flavor' type-id='type-id-40' mangled-name='rcu_flavor_memb' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_memb'/>
+    <!-- void urcu_memb_defer_exit() -->
+    <function-decl name='urcu_memb_defer_exit' mangled-name='urcu_memb_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_unregister_thread() -->
+    <function-decl name='urcu_memb_defer_unregister_thread' mangled-name='rcu_defer_unregister_thread_memb' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_defer_register_thread() -->
+    <function-decl name='urcu_memb_defer_register_thread' mangled-name='urcu_memb_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_memb_defer_rcu' mangled-name='defer_rcu_memb' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_memb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier() -->
+    <function-decl name='urcu_memb_defer_barrier' mangled-name='rcu_defer_barrier_memb' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier_thread() -->
+    <function-decl name='urcu_memb_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_memb' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_unregister_rculfhash_atfork' mangled-name='urcu_memb_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_memb' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_memb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_memb' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_parent' mangled-name='urcu_memb_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_before_fork() -->
+    <function-decl name='urcu_memb_call_rcu_before_fork' mangled-name='urcu_memb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_barrier() -->
+    <function-decl name='urcu_memb_barrier' mangled-name='rcu_barrier_memb' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_memb_free_all_cpu_call_rcu_data' mangled-name='urcu_memb_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_memb_call_rcu_data_free' mangled-name='urcu_memb_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_memb_call_rcu' mangled-name='urcu_memb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_memb_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_thread_call_rcu_data' mangled-name='set_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_thread_call_rcu_data' mangled-name='get_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_call_rcu_data' mangled-name='get_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_default_call_rcu_data' mangled-name='urcu_memb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_memb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_cpu_call_rcu_data' mangled-name='urcu_memb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_memb_create_call_rcu_data' mangled-name='urcu_memb_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_memb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_memb_get_call_rcu_thread' mangled-name='urcu_memb_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_memb_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_memb_init() -->
+    <function-decl name='urcu_memb_init' mangled-name='rcu_init_memb' filepath='src/urcu.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_thread() -->
+    <function-decl name='urcu_memb_unregister_thread' mangled-name='urcu_memb_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_thread() -->
+    <function-decl name='urcu_memb_register_thread' mangled-name='urcu_memb_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_read_ongoing() -->
+    <function-decl name='urcu_memb_read_ongoing' mangled-name='urcu_memb_read_ongoing' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_read_unlock() -->
+    <function-decl name='urcu_memb_read_unlock' mangled-name='urcu_memb_read_unlock' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_read_lock() -->
+    <function-decl name='urcu_memb_read_lock' mangled-name='rcu_read_lock_memb' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_synchronize_rcu() -->
+    <function-decl name='urcu_memb_synchronize_rcu' mangled-name='urcu_memb_synchronize_rcu' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml
new file mode 100644 (file)
index 0000000..7279983
--- /dev/null
@@ -0,0 +1,938 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-qsbr.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_child_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_parent_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_qsbr -->
+    <elf-symbol name='call_rcu_before_fork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_call_rcu_before_fork' is-defined='yes'/>
+    <!-- call_rcu_data_free_qsbr -->
+    <elf-symbol name='call_rcu_data_free_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_qsbr -->
+    <elf-symbol name='call_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_qsbr -->
+    <elf-symbol name='create_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_qsbr -->
+    <elf-symbol name='defer_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data -->
+    <elf-symbol name='free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_free_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_data_qsbr -->
+    <elf-symbol name='get_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_qsbr -->
+    <elf-symbol name='get_call_rcu_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='get_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_qsbr -->
+    <elf-symbol name='get_default_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='get_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_qsbr -->
+    <elf-symbol name='rcu_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_qsbr -->
+    <elf-symbol name='rcu_defer_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_qsbr -->
+    <elf-symbol name='rcu_defer_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_defer_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_qsbr -->
+    <elf-symbol name='rcu_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_quiescent_state_qsbr -->
+    <elf-symbol name='rcu_quiescent_state_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_qsbr -->
+    <elf-symbol name='rcu_read_lock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_qsbr -->
+    <elf-symbol name='rcu_read_ongoing_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_read_ongoing' is-defined='yes'/>
+    <!-- rcu_read_unlock_qsbr -->
+    <elf-symbol name='rcu_read_unlock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_qsbr -->
+    <elf-symbol name='rcu_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_offline_qsbr -->
+    <elf-symbol name='rcu_thread_offline_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_online_qsbr -->
+    <elf-symbol name='rcu_thread_online_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='set_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_set_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='set_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_set_thread_call_rcu_data' is-defined='yes'/>
+    <!-- synchronize_rcu_qsbr -->
+    <elf-symbol name='synchronize_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_barrier -->
+    <elf-symbol name='urcu_qsbr_barrier' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_barrier_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu -->
+    <elf-symbol name='urcu_qsbr_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_qsbr_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_qsbr_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_before_fork -->
+    <elf-symbol name='urcu_qsbr_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_data_free -->
+    <elf-symbol name='urcu_qsbr_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_data_free_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_all_cpu_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_create_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_barrier -->
+    <elf-symbol name='urcu_qsbr_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_barrier_thread -->
+    <elf-symbol name='urcu_qsbr_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_exit -->
+    <elf-symbol name='urcu_qsbr_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_rcu -->
+    <elf-symbol name='urcu_qsbr_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_register_thread -->
+    <elf-symbol name='urcu_qsbr_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_unregister_thread -->
+    <elf-symbol name='urcu_qsbr_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_unregister_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_exit -->
+    <elf-symbol name='urcu_qsbr_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_exit_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_call_rcu_thread -->
+    <elf-symbol name='urcu_qsbr_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_thread_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_quiescent_state -->
+    <elf-symbol name='urcu_qsbr_quiescent_state' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_quiescent_state_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_read_lock -->
+    <elf-symbol name='urcu_qsbr_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_read_ongoing -->
+    <elf-symbol name='urcu_qsbr_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_read_unlock -->
+    <elf-symbol name='urcu_qsbr_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_unlock_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_qsbr_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_register_thread -->
+    <elf-symbol name='urcu_qsbr_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_synchronize_rcu -->
+    <elf-symbol name='urcu_qsbr_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_thread_offline -->
+    <elf-symbol name='urcu_qsbr_thread_offline' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_thread_offline_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_thread_online -->
+    <elf-symbol name='urcu_qsbr_thread_online' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_thread_online_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_qsbr_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_unregister_thread -->
+    <elf-symbol name='urcu_qsbr_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_qsbr -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_qsbr -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_unregister_rculfhash_atfork' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_qsbr -->
+    <elf-symbol name='rcu_flavor_qsbr' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_qsbr -->
+    <elf-symbol name='rcu_gp_qsbr' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_gp' is-defined='yes'/>
+    <!-- rcu_reader_qsbr -->
+    <elf-symbol name='rcu_reader_qsbr' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_flavor -->
+    <elf-symbol name='urcu_qsbr_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_flavor_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_gp -->
+    <elf-symbol name='urcu_qsbr_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_reader -->
+    <elf-symbol name='urcu_qsbr_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_qsbr' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-qsbr.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_qsbr_reader -->
+    <class-decl name='urcu_qsbr_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='65' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_qsbr_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_qsbr_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- int urcu_qsbr_reader::waiting -->
+        <var-decl name='waiting' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- pthread_t urcu_qsbr_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_qsbr_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_qsbr_gp -->
+    <var-decl name='urcu_qsbr_gp' type-id='type-id-10' mangled-name='rcu_gp_qsbr' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='63' column='1' elf-symbol-id='rcu_gp_qsbr'/>
+    <!-- urcu_qsbr_reader urcu_qsbr_reader -->
+    <var-decl name='urcu_qsbr_reader' type-id='type-id-13' mangled-name='urcu_qsbr_reader' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='76' column='1' elf-symbol-id='urcu_qsbr_reader'/>
+    <!-- const rcu_flavor_struct urcu_qsbr_flavor -->
+    <var-decl name='urcu_qsbr_flavor' type-id='type-id-40' mangled-name='urcu_qsbr_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='urcu_qsbr_flavor'/>
+    <!-- void urcu_qsbr_defer_exit() -->
+    <function-decl name='urcu_qsbr_defer_exit' mangled-name='urcu_qsbr_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_unregister_thread() -->
+    <function-decl name='urcu_qsbr_defer_unregister_thread' mangled-name='urcu_qsbr_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_defer_register_thread() -->
+    <function-decl name='urcu_qsbr_defer_register_thread' mangled-name='urcu_qsbr_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_qsbr_defer_rcu' mangled-name='defer_rcu_qsbr' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_qsbr'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_barrier() -->
+    <function-decl name='urcu_qsbr_defer_barrier' mangled-name='rcu_defer_barrier_qsbr' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_barrier_thread() -->
+    <function-decl name='urcu_qsbr_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_qsbr' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_qsbr_unregister_rculfhash_atfork' mangled-name='urcu_unregister_rculfhash_atfork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_qsbr'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_qsbr_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_qsbr'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_qsbr_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_qsbr_call_rcu_after_fork_parent' mangled-name='urcu_qsbr_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_before_fork() -->
+    <function-decl name='urcu_qsbr_call_rcu_before_fork' mangled-name='call_rcu_before_fork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_barrier() -->
+    <function-decl name='urcu_qsbr_barrier' mangled-name='urcu_qsbr_barrier' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_call_rcu_data_free' mangled-name='urcu_qsbr_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_qsbr_call_rcu' mangled-name='urcu_qsbr_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_qsbr_create_all_cpu_call_rcu_data' mangled-name='urcu_qsbr_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_set_thread_call_rcu_data' mangled-name='set_thread_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_thread_call_rcu_data' mangled-name='urcu_qsbr_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_call_rcu_data' mangled-name='get_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_default_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_default_call_rcu_data' mangled-name='urcu_qsbr_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_qsbr_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_set_cpu_call_rcu_data' mangled-name='set_cpu_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_qsbr_create_call_rcu_data' mangled-name='urcu_qsbr_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_qsbr_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_get_call_rcu_thread' mangled-name='urcu_qsbr_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_qsbr_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_qsbr_exit() -->
+    <function-decl name='urcu_qsbr_exit' mangled-name='urcu_qsbr_exit' filepath='src/urcu-qsbr.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_unregister_thread() -->
+    <function-decl name='urcu_qsbr_unregister_thread' mangled-name='urcu_qsbr_unregister_thread' filepath='src/urcu-qsbr.c' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_register_thread() -->
+    <function-decl name='urcu_qsbr_register_thread' mangled-name='urcu_qsbr_register_thread' filepath='src/urcu-qsbr.c' line='481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_thread_online() -->
+    <function-decl name='urcu_qsbr_thread_online' mangled-name='urcu_qsbr_thread_online' filepath='src/urcu-qsbr.c' line='474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_thread_online'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_thread_offline() -->
+    <function-decl name='urcu_qsbr_thread_offline' mangled-name='urcu_qsbr_thread_offline' filepath='src/urcu-qsbr.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_thread_offline'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_quiescent_state() -->
+    <function-decl name='urcu_qsbr_quiescent_state' mangled-name='urcu_qsbr_quiescent_state' filepath='src/urcu-qsbr.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_quiescent_state'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_read_ongoing() -->
+    <function-decl name='urcu_qsbr_read_ongoing' mangled-name='rcu_read_ongoing_qsbr' filepath='src/urcu-qsbr.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_qsbr'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_read_unlock() -->
+    <function-decl name='urcu_qsbr_read_unlock' mangled-name='urcu_qsbr_read_unlock' filepath='src/urcu-qsbr.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_read_lock() -->
+    <function-decl name='urcu_qsbr_read_lock' mangled-name='rcu_read_lock_qsbr' filepath='src/urcu-qsbr.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_synchronize_rcu() -->
+    <function-decl name='urcu_qsbr_synchronize_rcu' mangled-name='urcu_qsbr_synchronize_rcu' filepath='src/urcu-qsbr.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml
new file mode 100644 (file)
index 0000000..3fecad8
--- /dev/null
@@ -0,0 +1,920 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-signal.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_sig -->
+    <elf-symbol name='call_rcu_after_fork_child_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_sig -->
+    <elf-symbol name='call_rcu_after_fork_parent_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_sig -->
+    <elf-symbol name='call_rcu_before_fork_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_call_rcu_before_fork' is-defined='yes'/>
+    <!-- call_rcu_data_free_sig -->
+    <elf-symbol name='call_rcu_data_free_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_call_rcu_data_free' is-defined='yes'/>
+    <!-- call_rcu_sig -->
+    <elf-symbol name='call_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_sig -->
+    <elf-symbol name='create_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_sig -->
+    <elf-symbol name='defer_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_sig -->
+    <elf-symbol name='get_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_sig -->
+    <elf-symbol name='get_call_rcu_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_get_call_rcu_thread' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_sig -->
+    <elf-symbol name='get_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_sig -->
+    <elf-symbol name='get_default_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_sig -->
+    <elf-symbol name='get_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_sig -->
+    <elf-symbol name='rcu_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_sig -->
+    <elf-symbol name='rcu_defer_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_sig -->
+    <elf-symbol name='rcu_defer_barrier_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_sig -->
+    <elf-symbol name='rcu_defer_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_exit' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_sig -->
+    <elf-symbol name='rcu_defer_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_sig -->
+    <elf-symbol name='rcu_defer_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_unregister_thread' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_sig -->
+    <elf-symbol name='rcu_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_sig -->
+    <elf-symbol name='rcu_init_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_init' is-defined='yes'/>
+    <!-- rcu_read_lock_sig -->
+    <elf-symbol name='rcu_read_lock_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_sig -->
+    <elf-symbol name='rcu_read_ongoing_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_read_ongoing' is-defined='yes'/>
+    <!-- rcu_read_unlock_sig -->
+    <elf-symbol name='rcu_read_unlock_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_read_unlock' is-defined='yes'/>
+    <!-- rcu_register_thread_sig -->
+    <elf-symbol name='rcu_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_sig -->
+    <elf-symbol name='rcu_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_sig -->
+    <elf-symbol name='set_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_set_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_sig -->
+    <elf-symbol name='set_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_sig -->
+    <elf-symbol name='synchronize_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_sig -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_barrier -->
+    <elf-symbol name='urcu_signal_barrier' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_barrier_sig' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu -->
+    <elf-symbol name='urcu_signal_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_sig' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_signal_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_signal_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_sig' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_before_fork -->
+    <elf-symbol name='urcu_signal_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_data_free -->
+    <elf-symbol name='urcu_signal_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_create_call_rcu_data -->
+    <elf-symbol name='urcu_signal_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_defer_barrier -->
+    <elf-symbol name='urcu_signal_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_barrier_thread -->
+    <elf-symbol name='urcu_signal_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_exit -->
+    <elf-symbol name='urcu_signal_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_rcu -->
+    <elf-symbol name='urcu_signal_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='defer_rcu_sig' is-defined='yes'/>
+    <!-- urcu_signal_defer_register_thread -->
+    <elf-symbol name='urcu_signal_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_sig' is-defined='yes'/>
+    <!-- urcu_signal_defer_unregister_thread -->
+    <elf-symbol name='urcu_signal_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_exit -->
+    <elf-symbol name='urcu_signal_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_exit_sig' is-defined='yes'/>
+    <!-- urcu_signal_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='free_all_cpu_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_get_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_get_call_rcu_thread -->
+    <elf-symbol name='urcu_signal_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_thread_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_init -->
+    <elf-symbol name='urcu_signal_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_read_lock -->
+    <elf-symbol name='urcu_signal_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_lock_sig' is-defined='yes'/>
+    <!-- urcu_signal_read_ongoing -->
+    <elf-symbol name='urcu_signal_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_read_unlock -->
+    <elf-symbol name='urcu_signal_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_signal_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_register_rculfhash_atfork_sig' is-defined='yes'/>
+    <!-- urcu_signal_register_thread -->
+    <elf-symbol name='urcu_signal_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_sig' is-defined='yes'/>
+    <!-- urcu_signal_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_signal_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_thread_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_synchronize_rcu -->
+    <elf-symbol name='urcu_signal_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_sig' is-defined='yes'/>
+    <!-- urcu_signal_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_signal_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_unregister_thread -->
+    <elf-symbol name='urcu_signal_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_sig' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_sig -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_unregister_rculfhash_atfork' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_sig -->
+    <elf-symbol name='rcu_flavor_sig' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_sig -->
+    <elf-symbol name='rcu_gp_sig' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_sig -->
+    <elf-symbol name='rcu_reader_sig' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_flavor -->
+    <elf-symbol name='urcu_signal_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_flavor_sig' is-defined='yes'/>
+    <!-- urcu_signal_gp -->
+    <elf-symbol name='urcu_signal_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_sig' is-defined='yes'/>
+    <!-- urcu_signal_reader -->
+    <elf-symbol name='urcu_signal_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_sig' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_signal_gp -->
+    <var-decl name='urcu_signal_gp' type-id='type-id-10' mangled-name='urcu_signal_gp' visibility='default' filepath='../include/urcu/static/urcu-signal.h' line='61' column='1' elf-symbol-id='urcu_signal_gp'/>
+    <!-- urcu_reader urcu_signal_reader -->
+    <var-decl name='urcu_signal_reader' type-id='type-id-13' mangled-name='urcu_signal_reader' visibility='default' filepath='../include/urcu/static/urcu-signal.h' line='63' column='1' elf-symbol-id='urcu_signal_reader'/>
+    <!-- const rcu_flavor_struct urcu_signal_flavor -->
+    <var-decl name='urcu_signal_flavor' type-id='type-id-40' mangled-name='urcu_signal_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='urcu_signal_flavor'/>
+    <!-- void urcu_signal_defer_exit() -->
+    <function-decl name='urcu_signal_defer_exit' mangled-name='rcu_defer_exit_sig' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_unregister_thread() -->
+    <function-decl name='urcu_signal_defer_unregister_thread' mangled-name='rcu_defer_unregister_thread_sig' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_defer_register_thread() -->
+    <function-decl name='urcu_signal_defer_register_thread' mangled-name='urcu_signal_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_signal_defer_rcu' mangled-name='urcu_signal_defer_rcu' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_barrier() -->
+    <function-decl name='urcu_signal_defer_barrier' mangled-name='rcu_defer_barrier_sig' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_barrier_thread() -->
+    <function-decl name='urcu_signal_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_sig' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_signal_unregister_rculfhash_atfork' mangled-name='urcu_unregister_rculfhash_atfork_sig' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_sig'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_signal_register_rculfhash_atfork' mangled-name='urcu_signal_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_signal_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_sig' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_signal_call_rcu_after_fork_parent' mangled-name='urcu_signal_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_before_fork() -->
+    <function-decl name='urcu_signal_call_rcu_before_fork' mangled-name='call_rcu_before_fork_sig' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_barrier() -->
+    <function-decl name='urcu_signal_barrier' mangled-name='urcu_signal_barrier' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_signal_free_all_cpu_call_rcu_data' mangled-name='urcu_signal_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_signal_call_rcu_data_free' mangled-name='call_rcu_data_free_sig' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_signal_call_rcu' mangled-name='urcu_signal_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_signal_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_signal_set_thread_call_rcu_data' mangled-name='urcu_signal_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_thread_call_rcu_data' mangled-name='urcu_signal_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_call_rcu_data' mangled-name='urcu_signal_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_default_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_default_call_rcu_data' mangled-name='urcu_signal_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_signal_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_signal_set_cpu_call_rcu_data' mangled-name='set_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_signal_create_call_rcu_data' mangled-name='urcu_signal_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_signal_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_signal_get_call_rcu_thread' mangled-name='get_call_rcu_thread_sig' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_signal_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_signal_exit() -->
+    <function-decl name='urcu_signal_exit' mangled-name='urcu_signal_exit' filepath='src/urcu.c' line='666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_init() -->
+    <function-decl name='urcu_signal_init' mangled-name='rcu_init_sig' filepath='src/urcu.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_unregister_thread() -->
+    <function-decl name='urcu_signal_unregister_thread' mangled-name='urcu_signal_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_register_thread() -->
+    <function-decl name='urcu_signal_register_thread' mangled-name='urcu_signal_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_read_ongoing() -->
+    <function-decl name='urcu_signal_read_ongoing' mangled-name='rcu_read_ongoing_sig' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_sig'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_read_unlock() -->
+    <function-decl name='urcu_signal_read_unlock' mangled-name='rcu_read_unlock_sig' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_read_lock() -->
+    <function-decl name='urcu_signal_read_lock' mangled-name='urcu_signal_read_lock' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_synchronize_rcu() -->
+    <function-decl name='urcu_signal_synchronize_rcu' mangled-name='urcu_signal_synchronize_rcu' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu.so.6.xml b/extras/abi/0.11/x86_64-pc-linux-gnu/liburcu.so.6.xml
new file mode 100644 (file)
index 0000000..a7722f6
--- /dev/null
@@ -0,0 +1,917 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_memb -->
+    <elf-symbol name='call_rcu_after_fork_child_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_memb -->
+    <elf-symbol name='call_rcu_after_fork_parent_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_memb -->
+    <elf-symbol name='call_rcu_before_fork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_memb -->
+    <elf-symbol name='call_rcu_data_free_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_memb -->
+    <elf-symbol name='call_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_memb -->
+    <elf-symbol name='create_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_memb -->
+    <elf-symbol name='defer_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_memb -->
+    <elf-symbol name='get_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_memb -->
+    <elf-symbol name='get_call_rcu_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_memb -->
+    <elf-symbol name='get_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_memb -->
+    <elf-symbol name='get_default_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_memb -->
+    <elf-symbol name='get_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_thread_call_rcu_data' is-defined='yes'/>
+    <!-- rcu_barrier_memb -->
+    <elf-symbol name='rcu_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_barrier' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_memb -->
+    <elf-symbol name='rcu_defer_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_memb -->
+    <elf-symbol name='rcu_defer_barrier_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_memb -->
+    <elf-symbol name='rcu_defer_exit_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_memb -->
+    <elf-symbol name='rcu_defer_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_memb -->
+    <elf-symbol name='rcu_defer_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_unregister_thread' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_memb -->
+    <elf-symbol name='rcu_init_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_init' is-defined='yes'/>
+    <!-- rcu_read_lock_memb -->
+    <elf-symbol name='rcu_read_lock_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_memb -->
+    <elf-symbol name='rcu_read_ongoing_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_memb -->
+    <elf-symbol name='rcu_read_unlock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_memb -->
+    <elf-symbol name='rcu_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_memb -->
+    <elf-symbol name='rcu_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_memb -->
+    <elf-symbol name='set_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_memb -->
+    <elf-symbol name='set_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_set_thread_call_rcu_data' is-defined='yes'/>
+    <!-- synchronize_rcu_memb -->
+    <elf-symbol name='synchronize_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_barrier -->
+    <elf-symbol name='urcu_memb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu -->
+    <elf-symbol name='urcu_memb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_memb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_data_free -->
+    <elf-symbol name='urcu_memb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_data_free_memb' is-defined='yes'/>
+    <!-- urcu_memb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier -->
+    <elf-symbol name='urcu_memb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier_thread -->
+    <elf-symbol name='urcu_memb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_exit -->
+    <elf-symbol name='urcu_memb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_rcu -->
+    <elf-symbol name='urcu_memb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_register_thread -->
+    <elf-symbol name='urcu_memb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_unregister_thread -->
+    <elf-symbol name='urcu_memb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='free_all_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_memb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_init -->
+    <elf-symbol name='urcu_memb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_lock -->
+    <elf-symbol name='urcu_memb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_ongoing -->
+    <elf-symbol name='urcu_memb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_ongoing_memb' is-defined='yes'/>
+    <!-- urcu_memb_read_unlock -->
+    <elf-symbol name='urcu_memb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_unlock_memb' is-defined='yes'/>
+    <!-- urcu_memb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_thread -->
+    <elf-symbol name='urcu_memb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_synchronize_rcu -->
+    <elf-symbol name='urcu_memb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_unregister_rculfhash_atfork_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_thread -->
+    <elf-symbol name='urcu_memb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_memb' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_memb -->
+    <elf-symbol name='rcu_flavor_memb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_flavor' is-defined='yes'/>
+    <!-- rcu_gp_memb -->
+    <elf-symbol name='rcu_gp_memb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_has_sys_membarrier_memb -->
+    <elf-symbol name='rcu_has_sys_membarrier_memb' size='4' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_has_sys_membarrier' is-defined='yes'/>
+    <!-- rcu_reader_memb -->
+    <elf-symbol name='rcu_reader_memb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_flavor -->
+    <elf-symbol name='urcu_memb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_gp -->
+    <elf-symbol name='urcu_memb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_memb' is-defined='yes'/>
+    <!-- urcu_memb_has_sys_membarrier -->
+    <elf-symbol name='urcu_memb_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_reader -->
+    <elf-symbol name='urcu_memb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_memb' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- int urcu_memb_has_sys_membarrier -->
+    <var-decl name='urcu_memb_has_sys_membarrier' type-id='type-id-5' mangled-name='rcu_has_sys_membarrier_memb' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='72' column='1' elf-symbol-id='rcu_has_sys_membarrier_memb'/>
+    <!-- urcu_gp urcu_memb_gp -->
+    <var-decl name='urcu_memb_gp' type-id='type-id-10' mangled-name='urcu_memb_gp' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='83' column='1' elf-symbol-id='urcu_memb_gp'/>
+    <!-- urcu_reader urcu_memb_reader -->
+    <var-decl name='urcu_memb_reader' type-id='type-id-13' mangled-name='urcu_memb_reader' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='85' column='1' elf-symbol-id='urcu_memb_reader'/>
+    <!-- const rcu_flavor_struct urcu_memb_flavor -->
+    <var-decl name='urcu_memb_flavor' type-id='type-id-40' mangled-name='rcu_flavor_memb' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_memb'/>
+    <!-- void urcu_memb_defer_exit() -->
+    <function-decl name='urcu_memb_defer_exit' mangled-name='urcu_memb_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_unregister_thread() -->
+    <function-decl name='urcu_memb_defer_unregister_thread' mangled-name='rcu_defer_unregister_thread_memb' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_defer_register_thread() -->
+    <function-decl name='urcu_memb_defer_register_thread' mangled-name='urcu_memb_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_memb_defer_rcu' mangled-name='defer_rcu_memb' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_memb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier() -->
+    <function-decl name='urcu_memb_defer_barrier' mangled-name='rcu_defer_barrier_memb' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier_thread() -->
+    <function-decl name='urcu_memb_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_memb' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_unregister_rculfhash_atfork' mangled-name='urcu_memb_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_memb' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_memb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_memb' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_parent' mangled-name='urcu_memb_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_before_fork() -->
+    <function-decl name='urcu_memb_call_rcu_before_fork' mangled-name='urcu_memb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_barrier() -->
+    <function-decl name='urcu_memb_barrier' mangled-name='rcu_barrier_memb' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_memb_free_all_cpu_call_rcu_data' mangled-name='urcu_memb_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_memb_call_rcu_data_free' mangled-name='urcu_memb_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_memb_call_rcu' mangled-name='urcu_memb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_memb_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_thread_call_rcu_data' mangled-name='set_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_thread_call_rcu_data' mangled-name='get_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_call_rcu_data' mangled-name='get_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_default_call_rcu_data' mangled-name='urcu_memb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_memb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_cpu_call_rcu_data' mangled-name='urcu_memb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_memb_create_call_rcu_data' mangled-name='urcu_memb_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_memb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_memb_get_call_rcu_thread' mangled-name='urcu_memb_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_memb_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_memb_init() -->
+    <function-decl name='urcu_memb_init' mangled-name='rcu_init_memb' filepath='src/urcu.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_thread() -->
+    <function-decl name='urcu_memb_unregister_thread' mangled-name='urcu_memb_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_thread() -->
+    <function-decl name='urcu_memb_register_thread' mangled-name='urcu_memb_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_read_ongoing() -->
+    <function-decl name='urcu_memb_read_ongoing' mangled-name='urcu_memb_read_ongoing' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_read_unlock() -->
+    <function-decl name='urcu_memb_read_unlock' mangled-name='urcu_memb_read_unlock' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_read_lock() -->
+    <function-decl name='urcu_memb_read_lock' mangled-name='rcu_read_lock_memb' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_synchronize_rcu() -->
+    <function-decl name='urcu_memb_synchronize_rcu' mangled-name='urcu_memb_synchronize_rcu' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-bp.so.6.xml
new file mode 100644 (file)
index 0000000..ccfa14f
--- /dev/null
@@ -0,0 +1,977 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-bp.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_bp -->
+    <elf-symbol name='call_rcu_after_fork_child_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_bp -->
+    <elf-symbol name='call_rcu_after_fork_parent_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_bp -->
+    <elf-symbol name='call_rcu_before_fork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_bp -->
+    <elf-symbol name='call_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_call_rcu' is-defined='yes'/>
+    <!-- call_rcu_data_free_bp -->
+    <elf-symbol name='call_rcu_data_free_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_call_rcu_data_free' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_bp -->
+    <elf-symbol name='create_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_create_call_rcu_data' is-defined='yes'/>
+    <!-- defer_rcu_bp -->
+    <elf-symbol name='defer_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_free_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_data_bp -->
+    <elf-symbol name='get_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_bp -->
+    <elf-symbol name='get_call_rcu_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_bp -->
+    <elf-symbol name='get_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_bp -->
+    <elf-symbol name='get_default_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_bp -->
+    <elf-symbol name='get_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_bp -->
+    <elf-symbol name='rcu_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_barrier' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_child -->
+    <elf-symbol name='rcu_bp_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_after_fork_child' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_parent -->
+    <elf-symbol name='rcu_bp_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_before_fork -->
+    <elf-symbol name='rcu_bp_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_register -->
+    <elf-symbol name='rcu_bp_register' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_register' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_cmpxchg_pointer_sym' is-defined='yes'/>
+    <!-- rcu_defer_barrier_bp -->
+    <elf-symbol name='rcu_defer_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_bp -->
+    <elf-symbol name='rcu_defer_barrier_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_bp -->
+    <elf-symbol name='rcu_defer_exit_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_bp -->
+    <elf-symbol name='rcu_defer_register_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_bp -->
+    <elf-symbol name='rcu_defer_unregister_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym_bp -->
+    <elf-symbol name='rcu_dereference_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_dereference_sym' is-defined='yes'/>
+    <!-- rcu_read_lock_bp -->
+    <elf-symbol name='rcu_read_lock_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_bp -->
+    <elf-symbol name='rcu_read_ongoing_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_bp -->
+    <elf-symbol name='rcu_read_unlock_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_read_unlock' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym_bp -->
+    <elf-symbol name='rcu_set_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_xchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_bp -->
+    <elf-symbol name='set_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_set_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_bp -->
+    <elf-symbol name='set_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_bp -->
+    <elf-symbol name='synchronize_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_after_fork_child -->
+    <elf-symbol name='urcu_bp_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_after_fork_parent -->
+    <elf-symbol name='urcu_bp_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_bp_after_fork_parent' is-defined='yes'/>
+    <!-- urcu_bp_barrier -->
+    <elf-symbol name='urcu_bp_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_before_fork -->
+    <elf-symbol name='urcu_bp_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_bp_before_fork' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu -->
+    <elf-symbol name='urcu_bp_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_bp_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_bp_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_bp' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_before_fork -->
+    <elf-symbol name='urcu_bp_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_bp' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_data_free -->
+    <elf-symbol name='urcu_bp_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_cmpxchg_pointer_sym -->
+    <elf-symbol name='urcu_bp_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_create_call_rcu_data -->
+    <elf-symbol name='urcu_bp_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_barrier -->
+    <elf-symbol name='urcu_bp_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_barrier_thread -->
+    <elf-symbol name='urcu_bp_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_exit -->
+    <elf-symbol name='urcu_bp_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_bp' is-defined='yes'/>
+    <!-- urcu_bp_defer_rcu -->
+    <elf-symbol name='urcu_bp_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_register_thread -->
+    <elf-symbol name='urcu_bp_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_bp' is-defined='yes'/>
+    <!-- urcu_bp_defer_unregister_thread -->
+    <elf-symbol name='urcu_bp_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_unregister_thread_bp' is-defined='yes'/>
+    <!-- urcu_bp_dereference_sym -->
+    <elf-symbol name='urcu_bp_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_call_rcu_thread -->
+    <elf-symbol name='urcu_bp_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_bp' is-defined='yes'/>
+    <!-- urcu_bp_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_cpu_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_thread_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_read_lock -->
+    <elf-symbol name='urcu_bp_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_lock_bp' is-defined='yes'/>
+    <!-- urcu_bp_read_ongoing -->
+    <elf-symbol name='urcu_bp_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_ongoing_bp' is-defined='yes'/>
+    <!-- urcu_bp_read_unlock -->
+    <elf-symbol name='urcu_bp_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register -->
+    <elf-symbol name='urcu_bp_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_bp_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register_thread -->
+    <elf-symbol name='urcu_bp_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_set_pointer_sym -->
+    <elf-symbol name='urcu_bp_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_set_pointer_sym_bp' is-defined='yes'/>
+    <!-- urcu_bp_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_bp_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_thread_call_rcu_data_bp' is-defined='yes'/>
+    <!-- urcu_bp_synchronize_rcu -->
+    <elf-symbol name='urcu_bp_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_bp' is-defined='yes'/>
+    <!-- urcu_bp_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_bp_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_unregister_rculfhash_atfork_bp' is-defined='yes'/>
+    <!-- urcu_bp_xchg_pointer_sym -->
+    <elf-symbol name='urcu_bp_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_xchg_pointer_sym_bp' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_bp -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_bp' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_bp -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_bp -->
+    <elf-symbol name='rcu_flavor_bp' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_flavor' is-defined='yes'/>
+    <!-- rcu_gp_bp -->
+    <elf-symbol name='rcu_gp_bp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_bp_gp' is-defined='yes'/>
+    <!-- rcu_reader_bp -->
+    <elf-symbol name='rcu_reader_bp' size='8' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_flavor -->
+    <elf-symbol name='urcu_bp_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_gp -->
+    <elf-symbol name='urcu_bp_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_has_sys_membarrier -->
+    <elf-symbol name='urcu_bp_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_reader -->
+    <elf-symbol name='urcu_bp_reader' size='8' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_bp' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-bp.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_bp_gp -->
+    <class-decl name='urcu_bp_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='77' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_bp_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='85' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_bp_reader -->
+    <class-decl name='urcu_bp_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='90' column='1' id='type-id-11'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_bp_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_bp_reader::node -->
+        <var-decl name='node' type-id='type-id-12' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_bp_reader::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- int urcu_bp_reader::alloc -->
+        <var-decl name='alloc' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='96' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-13'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-17' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-21'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-22' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-23' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-25'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-27' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-29' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-30' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-12' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-22' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-32' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-33' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-32'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-33'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-36' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-35'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-38' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-31'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-38'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-14'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-24'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-17'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-43'/>
+    <!-- urcu_bp_reader* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-44'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-16'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-23'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-18'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-19'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-26'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-27'/>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-51'/>
+    <!-- int urcu_bp_has_sys_membarrier -->
+    <var-decl name='urcu_bp_has_sys_membarrier' type-id='type-id-5' mangled-name='urcu_bp_has_sys_membarrier' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='109' column='1' elf-symbol-id='urcu_bp_has_sys_membarrier'/>
+    <!-- urcu_bp_gp urcu_bp_gp -->
+    <var-decl name='urcu_bp_gp' type-id='type-id-10' mangled-name='rcu_gp_bp' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='88' column='1' elf-symbol-id='rcu_gp_bp'/>
+    <!-- urcu_bp_reader* urcu_bp_reader -->
+    <var-decl name='urcu_bp_reader' type-id='type-id-44' mangled-name='urcu_bp_reader' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='104' column='1' elf-symbol-id='urcu_bp_reader'/>
+    <!-- const rcu_flavor_struct urcu_bp_flavor -->
+    <var-decl name='urcu_bp_flavor' type-id='type-id-40' mangled-name='rcu_flavor_bp' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_bp'/>
+    <!-- void urcu_bp_defer_exit() -->
+    <function-decl name='urcu_bp_defer_exit' mangled-name='urcu_bp_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_unregister_thread() -->
+    <function-decl name='urcu_bp_defer_unregister_thread' mangled-name='urcu_bp_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_defer_register_thread() -->
+    <function-decl name='urcu_bp_defer_register_thread' mangled-name='urcu_bp_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_bp_defer_rcu' mangled-name='defer_rcu_bp' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_bp'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_barrier() -->
+    <function-decl name='urcu_bp_defer_barrier' mangled-name='rcu_defer_barrier_bp' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_barrier_thread() -->
+    <function-decl name='urcu_bp_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_bp' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_bp_unregister_rculfhash_atfork' mangled-name='urcu_bp_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_bp_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_bp' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_bp'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_bp_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_bp' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_bp_call_rcu_after_fork_parent' mangled-name='urcu_bp_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_before_fork() -->
+    <function-decl name='urcu_bp_call_rcu_before_fork' mangled-name='urcu_bp_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_barrier() -->
+    <function-decl name='urcu_bp_barrier' mangled-name='rcu_barrier_bp' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_bp_free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_bp_call_rcu_data_free' mangled-name='call_rcu_data_free_bp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_bp_call_rcu' mangled-name='call_rcu_bp' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_bp'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_bp_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_bp_set_thread_call_rcu_data' mangled-name='urcu_bp_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_thread_call_rcu_data' mangled-name='urcu_bp_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_call_rcu_data' mangled-name='get_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_default_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_default_call_rcu_data' mangled-name='urcu_bp_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_bp_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_bp_set_cpu_call_rcu_data' mangled-name='set_cpu_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_bp_create_call_rcu_data' mangled-name='create_call_rcu_data_bp' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_bp_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_bp_get_call_rcu_thread' mangled-name='urcu_bp_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-13'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_bp_get_cpu_call_rcu_data' mangled-name='urcu_bp_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void* urcu_bp_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='urcu_bp_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym_bp' filepath='src/urcu-bp.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='780' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-bp.c' line='780' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-bp.c' line='780' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='urcu_bp_xchg_pointer_sym' mangled-name='urcu_bp_xchg_pointer_sym' filepath='src/urcu-bp.c' line='772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='772' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='772' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_set_pointer_sym(void**, void*) -->
+    <function-decl name='urcu_bp_set_pointer_sym' mangled-name='urcu_bp_set_pointer_sym' filepath='src/urcu-bp.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='763' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='763' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_dereference_sym(void*) -->
+    <function-decl name='urcu_bp_dereference_sym' mangled-name='rcu_dereference_sym_bp' filepath='src/urcu-bp.c' line='756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym_bp'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-bp.c' line='756' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void urcu_bp_after_fork_child() -->
+    <function-decl name='urcu_bp_after_fork_child' mangled-name='rcu_bp_after_fork_child' filepath='src/urcu-bp.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_after_fork_parent() -->
+    <function-decl name='urcu_bp_after_fork_parent' mangled-name='urcu_bp_after_fork_parent' filepath='src/urcu-bp.c' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_before_fork() -->
+    <function-decl name='urcu_bp_before_fork' mangled-name='urcu_bp_before_fork' filepath='src/urcu-bp.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register_thread() -->
+    <function-decl name='urcu_bp_register_thread' mangled-name='urcu_bp_register_thread' filepath='src/urcu-bp.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register() -->
+    <function-decl name='urcu_bp_register' mangled-name='rcu_bp_register' filepath='src/urcu-bp.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_register'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_read_ongoing() -->
+    <function-decl name='urcu_bp_read_ongoing' mangled-name='urcu_bp_read_ongoing' filepath='src/urcu-bp.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_read_unlock() -->
+    <function-decl name='urcu_bp_read_unlock' mangled-name='rcu_read_unlock_bp' filepath='src/urcu-bp.c' line='364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_read_lock() -->
+    <function-decl name='urcu_bp_read_lock' mangled-name='urcu_bp_read_lock' filepath='src/urcu-bp.c' line='358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_synchronize_rcu() -->
+    <function-decl name='urcu_bp_synchronize_rcu' mangled-name='urcu_bp_synchronize_rcu' filepath='src/urcu-bp.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-50'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-52'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-53'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-54'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-55'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-56'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-57'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-58' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-59'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-58'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-52' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-61' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-61'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-62' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-63'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-64'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-65'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-63' const='yes' id='type-id-66'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-68'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-32' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-59' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-cds.so.6.xml
new file mode 100644 (file)
index 0000000..5d9540c
--- /dev/null
@@ -0,0 +1,1464 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-cds.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_lfs_init -->
+    <elf-symbol name='__cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop -->
+    <elf-symbol name='__cds_lfs_pop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop_all -->
+    <elf-symbol name='__cds_lfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- _cds_lfht_new -->
+    <elf-symbol name='_cds_lfht_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add -->
+    <elf-symbol name='cds_lfht_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_replace -->
+    <elf-symbol name='cds_lfht_add_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_unique -->
+    <elf-symbol name='cds_lfht_add_unique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_count_nodes -->
+    <elf-symbol name='cds_lfht_count_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_del -->
+    <elf-symbol name='cds_lfht_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_destroy -->
+    <elf-symbol name='cds_lfht_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_first -->
+    <elf-symbol name='cds_lfht_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_fls_ulong -->
+    <elf-symbol name='cds_lfht_fls_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_get_count_order_ulong -->
+    <elf-symbol name='cds_lfht_get_count_order_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_is_node_deleted -->
+    <elf-symbol name='cds_lfht_is_node_deleted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_lookup -->
+    <elf-symbol name='cds_lfht_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next -->
+    <elf-symbol name='cds_lfht_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next_duplicate -->
+    <elf-symbol name='cds_lfht_next_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_replace -->
+    <elf-symbol name='cds_lfht_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_resize -->
+    <elf-symbol name='cds_lfht_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_dequeue_rcu -->
+    <elf-symbol name='cds_lfq_dequeue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_destroy_rcu -->
+    <elf-symbol name='cds_lfq_destroy_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_enqueue_rcu -->
+    <elf-symbol name='cds_lfq_enqueue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_init_rcu -->
+    <elf-symbol name='cds_lfq_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_node_init_rcu -->
+    <elf-symbol name='cds_lfq_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_destroy -->
+    <elf-symbol name='cds_lfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_empty -->
+    <elf-symbol name='cds_lfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init -->
+    <elf-symbol name='cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init_rcu -->
+    <elf-symbol name='cds_lfs_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init -->
+    <elf-symbol name='cds_lfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init_rcu -->
+    <elf-symbol name='cds_lfs_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_all_blocking -->
+    <elf-symbol name='cds_lfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_blocking -->
+    <elf-symbol name='cds_lfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_lock -->
+    <elf-symbol name='cds_lfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_rcu -->
+    <elf-symbol name='cds_lfs_pop_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_unlock -->
+    <elf-symbol name='cds_lfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push -->
+    <elf-symbol name='cds_lfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push_rcu -->
+    <elf-symbol name='cds_lfs_push_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create -->
+    <elf-symbol name='urcu_workqueue_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_completion -->
+    <elf-symbol name='urcu_workqueue_create_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_worker -->
+    <elf-symbol name='urcu_workqueue_create_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy -->
+    <elf-symbol name='urcu_workqueue_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy_completion -->
+    <elf-symbol name='urcu_workqueue_destroy_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_flush_queued_work -->
+    <elf-symbol name='urcu_workqueue_flush_queued_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_pause_worker -->
+    <elf-symbol name='urcu_workqueue_pause_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_completion -->
+    <elf-symbol name='urcu_workqueue_queue_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_work -->
+    <elf-symbol name='urcu_workqueue_queue_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_resume_worker -->
+    <elf-symbol name='urcu_workqueue_resume_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_wait_completion -->
+    <elf-symbol name='urcu_workqueue_wait_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_chunk -->
+    <elf-symbol name='cds_lfht_mm_chunk' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_mmap -->
+    <elf-symbol name='cds_lfht_mm_mmap' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_order -->
+    <elf-symbol name='cds_lfht_mm_order' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='rculfqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-2'/>
+    <!-- struct cds_lfq_node_rcu -->
+    <class-decl name='cds_lfq_node_rcu' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='35' column='1' id='type-id-3'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int cds_lfq_node_rcu::dummy -->
+        <var-decl name='dummy' type-id='type-id-1' visibility='default' filepath='../include/urcu/rculfqueue.h' line='37' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfq_queue_rcu -->
+    <class-decl name='cds_lfq_queue_rcu' size-in-bits='192' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='40' column='1' id='type-id-5'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::head -->
+        <var-decl name='head' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::tail -->
+        <var-decl name='tail' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* cds_lfq_queue_rcu::queue_call_rcu -->
+        <var-decl name='queue_call_rcu' type-id='type-id-6' visibility='default' filepath='../include/urcu/rculfqueue.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-7'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-9' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-8'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfq_node_rcu* -->
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-4'/>
+    <!-- cds_lfq_queue_rcu* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-10'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-12'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-9'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-6'/>
+    <!-- cds_lfq_node_rcu* cds_lfq_dequeue_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_dequeue_rcu' mangled-name='cds_lfq_dequeue_rcu' filepath='src/rculfqueue.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_dequeue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='56' column='1'/>
+      <!-- cds_lfq_node_rcu* -->
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <!-- void cds_lfq_enqueue_rcu(cds_lfq_queue_rcu*, cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_enqueue_rcu' mangled-name='cds_lfq_enqueue_rcu' filepath='src/rculfqueue.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_enqueue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfq_destroy_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_destroy_rcu' mangled-name='cds_lfq_destroy_rcu' filepath='src/rculfqueue.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_destroy_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='45' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfq_init_rcu(cds_lfq_queue_rcu*, void (rcu_head*, void (rcu_head*)*)*) -->
+    <function-decl name='cds_lfq_init_rcu' mangled-name='cds_lfq_init_rcu' filepath='src/rculfqueue.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_init_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='38' column='1'/>
+      <!-- parameter of type 'void (rcu_head*, void (rcu_head*)*)*' -->
+      <parameter type-id='type-id-6' name='queue_call_rcu' filepath='src/rculfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfq_node_init_rcu(cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_node_init_rcu' mangled-name='cds_lfq_node_init_rcu' filepath='src/rculfqueue.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_node_init_rcu'>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-13'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-14'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-9'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_lfs_node_rcu -->
+    <class-decl name='cds_lfs_node_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='37' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack_rcu -->
+    <class-decl name='cds_lfs_stack_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='41' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_stack_rcu::head -->
+        <var-decl name='head' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfs_node_rcu* -->
+    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_lfs_stack_rcu* -->
+    <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-18'/>
+    <!-- cds_lfs_node_rcu* cds_lfs_pop_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_pop_rcu' mangled-name='cds_lfs_pop_rcu' filepath='src/rculfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='53' column='1'/>
+      <!-- cds_lfs_node_rcu* -->
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <!-- int cds_lfs_push_rcu(cds_lfs_stack_rcu*, cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_push_rcu' mangled-name='cds_lfs_push_rcu' filepath='src/rculfstack.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='47' column='1'/>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='48' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfs_init_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_init_rcu' mangled-name='cds_lfs_init_rcu' filepath='src/rculfstack.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='42' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init_rcu(cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_node_init_rcu' mangled-name='cds_lfs_node_init_rcu' filepath='src/rculfstack.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init_rcu'>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='37' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='lfstack.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-19'/>
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-20'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='320' id='type-id-21'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-22' id='type-id-23'/>
+
+    </array-type-def>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-24'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-25'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-26'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-22'/>
+    <!-- struct cds_lfs_head -->
+    <class-decl name='cds_lfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='69' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node cds_lfs_head::node -->
+        <var-decl name='node' type-id='type-id-28' visibility='default' filepath='../include/urcu/lfstack.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_node -->
+    <class-decl name='cds_lfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='59' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node* cds_lfs_node::next -->
+        <var-decl name='next' type-id='type-id-29' visibility='default' filepath='../include/urcu/lfstack.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_lfs_stack_ptr_t -->
+    <typedef-decl name='cds_lfs_stack_ptr_t' type-id='type-id-30' filepath='../include/urcu/lfstack.h' line='90' column='1' id='type-id-31'/>
+    <!-- union {__cds_lfs_stack* _s; cds_lfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='87' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __cds_lfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-32' visibility='default' filepath='../include/urcu/lfstack.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfs_stack* s -->
+        <var-decl name='s' type-id='type-id-33' visibility='default' filepath='../include/urcu/lfstack.h' line='89' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_lfs_stack -->
+    <class-decl name='__cds_lfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='73' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* __cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack -->
+    <class-decl name='cds_lfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='77' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_lfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/lfstack.h' line='79' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__1 pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-38' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-37'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-39' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-39'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-40' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-41' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-40'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-41'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-32'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-42'/>
+    <!-- cds_lfs_head* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_lfs_node* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
+    <!-- cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-33'/>
+    <!-- cds_lfs_head* __cds_lfs_pop_all(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop_all' mangled-name='__cds_lfs_pop_all' filepath='src/lfstack.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop_all'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='88' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* __cds_lfs_pop(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop' mangled-name='__cds_lfs_pop' filepath='src/lfstack.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='83' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_unlock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_unlock' mangled-name='cds_lfs_pop_unlock' filepath='src/lfstack.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_unlock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='78' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_lock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_lock' mangled-name='cds_lfs_pop_lock' filepath='src/lfstack.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_lock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='73' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfs_head* cds_lfs_pop_all_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_all_blocking' mangled-name='cds_lfs_pop_all_blocking' filepath='src/lfstack.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='68' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* cds_lfs_pop_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_blocking' mangled-name='cds_lfs_pop_blocking' filepath='src/lfstack.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='63' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- bool cds_lfs_push(cds_lfs_stack_ptr_t, cds_lfs_node*) -->
+    <function-decl name='cds_lfs_push' mangled-name='cds_lfs_push' filepath='src/lfstack.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- bool cds_lfs_empty(cds_lfs_stack_ptr_t) -->
+    <function-decl name='cds_lfs_empty' mangled-name='cds_lfs_empty' filepath='src/lfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_empty'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='53' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- void __cds_lfs_init(__cds_lfs_stack*) -->
+    <function-decl name='__cds_lfs_init' mangled-name='__cds_lfs_init' filepath='src/lfstack.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_init'>
+      <!-- parameter of type '__cds_lfs_stack*' -->
+      <parameter type-id='type-id-32' name='s' filepath='src/lfstack.c' line='48' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_destroy(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_destroy' mangled-name='cds_lfs_destroy' filepath='src/lfstack.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_destroy'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='43' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_init(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_init' mangled-name='cds_lfs_init' filepath='src/lfstack.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init(cds_lfs_node*) -->
+    <function-decl name='cds_lfs_node_init' mangled-name='cds_lfs_node_init' filepath='src/lfstack.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init'>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='workqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct urcu_workqueue -->
+    <class-decl name='urcu_workqueue' size-in-bits='2048' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='54' column='1' id='type-id-43'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail urcu_workqueue::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-44' visibility='default' filepath='src/workqueue.c' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head urcu_workqueue::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-45' visibility='default' filepath='src/workqueue.c' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int urcu_workqueue::flags -->
+        <var-decl name='flags' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t urcu_workqueue::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int urcu_workqueue::qlen -->
+        <var-decl name='qlen' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t urcu_workqueue::tid -->
+        <var-decl name='tid' type-id='type-id-47' visibility='default' filepath='src/workqueue.c' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int urcu_workqueue::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int urcu_workqueue::loop_count -->
+        <var-decl name='loop_count' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void* urcu_workqueue::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='src/workqueue.c' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::grace_period_fct -->
+        <var-decl name='grace_period_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::initialize_worker_fct -->
+        <var-decl name='initialize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::finalize_worker_fct -->
+        <var-decl name='finalize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_pause_fct -->
+        <var-decl name='worker_before_pause_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_resume_fct -->
+        <var-decl name='worker_after_resume_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_wait_fct -->
+        <var-decl name='worker_before_wait_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_wake_up_fct -->
+        <var-decl name='worker_after_wake_up_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='76' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-45'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-8' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-50' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-46'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-1' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-50'/>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-22' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-47'/>
+    <!-- struct urcu_workqueue_completion -->
+    <class-decl name='urcu_workqueue_completion' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='79' column='1' id='type-id-51'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int urcu_workqueue_completion::barrier_count -->
+        <var-decl name='barrier_count' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- int32_t urcu_workqueue_completion::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- urcu_ref urcu_workqueue_completion::ref -->
+        <var-decl name='ref' type-id='type-id-52' visibility='default' filepath='src/workqueue.c' line='82' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_ref -->
+    <class-decl name='urcu_ref' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/ref.h' line='23' column='1' id='type-id-52'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- long int urcu_ref::refcount -->
+        <var-decl name='refcount' type-id='type-id-24' visibility='default' filepath='../include/urcu/ref.h' line='24' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_work -->
+    <class-decl name='urcu_work' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.h' line='53' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node urcu_work::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='src/workqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (urcu_work*)* urcu_work::func -->
+        <var-decl name='func' type-id='type-id-54' visibility='default' filepath='src/workqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- urcu_work* -->
+    <pointer-type-def type-id='type-id-53' size-in-bits='64' id='type-id-55'/>
+    <!-- urcu_workqueue* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-56'/>
+    <!-- urcu_workqueue_completion* -->
+    <pointer-type-def type-id='type-id-51' size-in-bits='64' id='type-id-57'/>
+    <!-- void (urcu_work*)* -->
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-54'/>
+    <!-- void (urcu_workqueue*, void*)* -->
+    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-49'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-48'/>
+    <!-- void urcu_workqueue_create_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_create_worker' mangled-name='urcu_workqueue_create_worker' filepath='src/workqueue.c' line='458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='458' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_resume_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_resume_worker' mangled-name='urcu_workqueue_resume_worker' filepath='src/workqueue.c' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_resume_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='451' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_pause_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_pause_worker' mangled-name='urcu_workqueue_pause_worker' filepath='src/workqueue.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_pause_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='440' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_flush_queued_work(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_flush_queued_work' mangled-name='urcu_workqueue_flush_queued_work' filepath='src/workqueue.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_flush_queued_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='427' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_completion(urcu_workqueue*, urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_queue_completion' mangled-name='urcu_workqueue_queue_completion' filepath='src/workqueue.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_completion'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='410' column='1'/>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='411' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_wait_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_wait_completion' mangled-name='urcu_workqueue_wait_completion' filepath='src/workqueue.c' line='397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_wait_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='397' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_destroy_completion' mangled-name='urcu_workqueue_destroy_completion' filepath='src/workqueue.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='392' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue_completion* urcu_workqueue_create_completion() -->
+    <function-decl name='urcu_workqueue_create_completion' mangled-name='urcu_workqueue_create_completion' filepath='src/workqueue.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_completion'>
+      <!-- urcu_workqueue_completion* -->
+      <return type-id='type-id-57'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_work(urcu_workqueue*, urcu_work*, void (urcu_work*)*) -->
+    <function-decl name='urcu_workqueue_queue_work' mangled-name='urcu_workqueue_queue_work' filepath='src/workqueue.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='346' column='1'/>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55' name='work' filepath='src/workqueue.c' line='347' column='1'/>
+      <!-- parameter of type 'void (urcu_work*)*' -->
+      <parameter type-id='type-id-54' name='func' filepath='src/workqueue.c' line='348' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_destroy' mangled-name='urcu_workqueue_destroy' filepath='src/workqueue.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='334' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue* urcu_workqueue_create(unsigned long int, int, void*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*) -->
+    <function-decl name='urcu_workqueue_create' mangled-name='urcu_workqueue_create' filepath='src/workqueue.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='flags' filepath='src/workqueue.c' line='269' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='cpu_affinity' filepath='src/workqueue.c' line='270' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='priv' filepath='src/workqueue.c' line='270' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='grace_period_fct' filepath='src/workqueue.c' line='271' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='initialize_worker_fct' filepath='src/workqueue.c' line='272' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='finalize_worker_fct' filepath='src/workqueue.c' line='273' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_wait_fct' filepath='src/workqueue.c' line='274' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_wake_up_fct' filepath='src/workqueue.c' line='275' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_pause_fct' filepath='src/workqueue.c' line='276' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_resume_fct' filepath='src/workqueue.c' line='277' column='1'/>
+      <!-- urcu_workqueue* -->
+      <return type-id='type-id-56'/>
+    </function-decl>
+    <!-- void (urcu_work*) -->
+    <function-type size-in-bits='64' id='type-id-58'>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_workqueue*, void*) -->
+    <function-type size-in-bits='64' id='type-id-59'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash.c' comp-dir-path='src' language='LANG_C99'>
+
+
+
+    <!-- cds_lfht_node*[64] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='4096' id='type-id-61'>
+      <!-- <anonymous range>[64] -->
+      <subrange length='64' type-id='type-id-22' id='type-id-62'/>
+
+    </array-type-def>
+    <!-- cds_lfht_node*[] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='infinite' id='type-id-63'>
+      <!-- <anonymous range>[] -->
+      <subrange length='infinite' type-id='type-id-22' id='type-id-64'/>
+
+    </array-type-def>
+    <!-- char[56] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='448' id='type-id-65'>
+      <!-- <anonymous range>[56] -->
+      <subrange length='56' type-id='type-id-22' id='type-id-66'/>
+
+    </array-type-def>
+    <!-- struct cds_lfht -->
+    <class-decl name='cds_lfht' size-in-bits='5248' is-struct='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='70' column='1' id='type-id-67'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int cds_lfht::max_nr_buckets -->
+        <var-decl name='max_nr_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- const cds_lfht_mm_type* cds_lfht::mm -->
+        <var-decl name='mm' type-id='type-id-68' visibility='default' filepath='../src/rculfhash-internal.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- const rcu_flavor_struct* cds_lfht::flavor -->
+        <var-decl name='flavor' type-id='type-id-69' visibility='default' filepath='../src/rculfhash-internal.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- long int cds_lfht::count -->
+        <var-decl name='count' type-id='type-id-24' visibility='default' filepath='../src/rculfhash-internal.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- pthread_mutex_t cds_lfht::resize_mutex -->
+        <var-decl name='resize_mutex' type-id='type-id-37' visibility='default' filepath='../src/rculfhash-internal.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- pthread_attr_t* cds_lfht::resize_attr -->
+        <var-decl name='resize_attr' type-id='type-id-70' visibility='default' filepath='../src/rculfhash-internal.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- unsigned int cds_lfht::in_progress_destroy -->
+        <var-decl name='in_progress_destroy' type-id='type-id-26' visibility='default' filepath='../src/rculfhash-internal.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- unsigned long int cds_lfht::resize_target -->
+        <var-decl name='resize_target' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- int cds_lfht::resize_initiated -->
+        <var-decl name='resize_initiated' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='89' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='800'>
+        <!-- int cds_lfht::flags -->
+        <var-decl name='flags' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- unsigned long int cds_lfht::min_alloc_buckets_order -->
+        <var-decl name='min_alloc_buckets_order' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- unsigned long int cds_lfht::min_nr_alloc_buckets -->
+        <var-decl name='min_nr_alloc_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- ht_items_count* cds_lfht::split_count -->
+        <var-decl name='split_count' type-id='type-id-71' visibility='default' filepath='../src/rculfhash-internal.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- unsigned long int cds_lfht::size -->
+        <var-decl name='size' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='102' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../src/rculfhash-internal.h' line='107' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+        <var-decl name='' type-id='type-id-73' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_mm_type -->
+    <class-decl name='cds_lfht_mm_type' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='120' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht* (unsigned long int, unsigned long int)* cds_lfht_mm_type::alloc_cds_lfht -->
+        <var-decl name='alloc_cds_lfht' type-id='type-id-75' visibility='default' filepath='../include/urcu/rculfhash.h' line='121' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* cds_lfht_mm_type::alloc_bucket_table -->
+        <var-decl name='alloc_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='123' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void ()* cds_lfht_mm_type::free_bucket_table -->
+        <var-decl name='free_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='124' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht_mm_type::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../include/urcu/rculfhash.h' line='125' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_node -->
+    <class-decl name='cds_lfht_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='63' column='1' id='type-id-77'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_node::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int cds_lfht_node::reverse_hash -->
+        <var-decl name='reverse_hash' type-id='type-id-22' visibility='default' filepath='../include/urcu/rculfhash.h' line='65' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-78'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-80' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-6' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-81' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-83'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef pthread_attr_t pthread_attr_t -->
+    <typedef-decl name='pthread_attr_t' type-id='type-id-85' filepath='/usr/include/bits/pthreadtypes.h' line='62' column='1' id='type-id-86'/>
+    <!-- union pthread_attr_t -->
+    <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='56' column='1' id='type-id-85'>
+      <data-member access='private'>
+        <!-- char pthread_attr_t::__size[56] -->
+        <var-decl name='__size' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int pthread_attr_t::__align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='59' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct ht_items_count -->
+    <class-decl name='ht_items_count' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/rculfhash.c' line='338' column='1' id='type-id-87'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int ht_items_count::add -->
+        <var-decl name='add' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='339' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int ht_items_count::del -->
+        <var-decl name='del' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='339' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='113' column='1' id='type-id-73'>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_order[64] -->
+        <var-decl name='tbl_order' type-id='type-id-61' visibility='default' filepath='../src/rculfhash-internal.h' line='122' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_chunk[] -->
+        <var-decl name='tbl_chunk' type-id='type-id-63' visibility='default' filepath='../src/rculfhash-internal.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_mmap -->
+        <var-decl name='tbl_mmap' type-id='type-id-60' visibility='default' filepath='../src/rculfhash-internal.h' line='140' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct cds_lfht_iter -->
+    <class-decl name='cds_lfht_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='69' column='1' id='type-id-88'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_iter::node -->
+        <var-decl name='node' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfht_node* cds_lfht_iter::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef int (cds_lfht_node*, void*)* cds_lfht_match_fct -->
+    <typedef-decl name='cds_lfht_match_fct' type-id='type-id-89' filepath='../include/urcu/rculfhash.h' line='98' column='1' id='type-id-90'/>
+    <!-- cds_lfht* -->
+    <pointer-type-def type-id='type-id-67' size-in-bits='64' id='type-id-91'/>
+    <!-- cds_lfht* (unsigned long int, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-92' size-in-bits='64' id='type-id-75'/>
+    <!-- cds_lfht_iter* -->
+    <pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-93'/>
+    <!-- cds_lfht_node* -->
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-60'/>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-94' size-in-bits='64' id='type-id-72'/>
+    <!-- const cds_lfht_mm_type -->
+    <qualified-type-def type-id='type-id-74' const='yes' id='type-id-95'/>
+    <!-- const cds_lfht_mm_type* -->
+    <pointer-type-def type-id='type-id-95' size-in-bits='64' id='type-id-68'/>
+    <!-- const cds_lfht_node -->
+    <qualified-type-def type-id='type-id-77' const='yes' id='type-id-96'/>
+    <!-- const cds_lfht_node* -->
+    <pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-97'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-78' const='yes' id='type-id-98'/>
+    <!-- const rcu_flavor_struct* -->
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-69'/>
+    <!-- ht_items_count* -->
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-71'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-99' size-in-bits='64' id='type-id-80'/>
+    <!-- int (cds_lfht_node*, void*)* -->
+    <pointer-type-def type-id='type-id-100' size-in-bits='64' id='type-id-89'/>
+    <!-- long int* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-101'/>
+    <!-- pthread_attr_t* -->
+    <pointer-type-def type-id='type-id-86' size-in-bits='64' id='type-id-70'/>
+    <!-- pthread_attr_t** -->
+    <pointer-type-def type-id='type-id-70' size-in-bits='64' id='type-id-102'/>
+    <!-- unsigned long int* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-103'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-104'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-105' size-in-bits='64' id='type-id-79'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-76'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-82'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-108' size-in-bits='64' id='type-id-81'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-109' size-in-bits='64' id='type-id-84'/>
+    <!-- void cds_lfht_resize(cds_lfht*, unsigned long int) -->
+    <function-decl name='cds_lfht_resize' mangled-name='cds_lfht_resize' filepath='src/rculfhash.c' line='2028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_resize'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='2028' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size' filepath='src/rculfhash.c' line='2028' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_count_nodes(cds_lfht*, long int*, unsigned long int*, long int*) -->
+    <function-decl name='cds_lfht_count_nodes' mangled-name='cds_lfht_count_nodes' filepath='src/rculfhash.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_count_nodes'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1906' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-101' name='approx_before' filepath='src/rculfhash.c' line='1907' column='1'/>
+      <!-- parameter of type 'unsigned long int*' -->
+      <parameter type-id='type-id-103' name='count' filepath='src/rculfhash.c' line='1908' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-101' name='approx_after' filepath='src/rculfhash.c' line='1909' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfht_destroy(cds_lfht*, pthread_attr_t**) -->
+    <function-decl name='cds_lfht_destroy' mangled-name='cds_lfht_destroy' filepath='src/rculfhash.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_destroy'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1881' column='1'/>
+      <!-- parameter of type 'pthread_attr_t**' -->
+      <parameter type-id='type-id-102' name='attr' filepath='src/rculfhash.c' line='1881' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_is_node_deleted(const cds_lfht_node*) -->
+    <function-decl name='cds_lfht_is_node_deleted' mangled-name='cds_lfht_is_node_deleted' filepath='src/rculfhash.c' line='1838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_is_node_deleted'>
+      <!-- parameter of type 'const cds_lfht_node*' -->
+      <parameter type-id='type-id-97' name='node' filepath='src/rculfhash.c' line='1838' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_del(cds_lfht*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_del' mangled-name='cds_lfht_del' filepath='src/rculfhash.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_del'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1822' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1822' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_replace(cds_lfht*, cds_lfht_iter*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_replace' mangled-name='cds_lfht_replace' filepath='src/rculfhash.c' line='1801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1801' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='old_iter' filepath='src/rculfhash.c' line='1802' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1803' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1804' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1805' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='new_node' filepath='src/rculfhash.c' line='1806' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_replace(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_replace' mangled-name='cds_lfht_add_replace' filepath='src/rculfhash.c' line='1778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1778' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1779' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1780' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1781' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1782' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_unique(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_unique' mangled-name='cds_lfht_add_unique' filepath='src/rculfhash.c' line='1761' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_unique'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1761' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1762' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1763' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1764' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1765' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- void cds_lfht_add(cds_lfht*, unsigned long int, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add' mangled-name='cds_lfht_add' filepath='src/rculfhash.c' line='1750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1750' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1750' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1751' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_first(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_first' mangled-name='cds_lfht_first' filepath='src/rculfhash.c' line='1739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_first'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1739' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1739' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next' mangled-name='cds_lfht_next' filepath='src/rculfhash.c' line='1715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1715' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1716' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next_duplicate(cds_lfht*, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next_duplicate' mangled-name='cds_lfht_next_duplicate' filepath='src/rculfhash.c' line='1680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next_duplicate'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1680' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1681' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1682' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1682' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_lookup(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_lookup' mangled-name='cds_lfht_lookup' filepath='src/rculfhash.c' line='1640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_lookup'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1640' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1640' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1641' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1641' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1642' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfht* _cds_lfht_new(unsigned long int, unsigned long int, unsigned long int, int, const cds_lfht_mm_type*, const rcu_flavor_struct*, pthread_attr_t*) -->
+    <function-decl name='_cds_lfht_new' mangled-name='_cds_lfht_new' filepath='src/rculfhash.c' line='1581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_cds_lfht_new'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='init_size' filepath='src/rculfhash.c' line='1581' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='min_nr_alloc_buckets' filepath='src/rculfhash.c' line='1582' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='max_nr_buckets' filepath='src/rculfhash.c' line='1583' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='flags' filepath='src/rculfhash.c' line='1584' column='1'/>
+      <!-- parameter of type 'const cds_lfht_mm_type*' -->
+      <parameter type-id='type-id-68' name='mm' filepath='src/rculfhash.c' line='1585' column='1'/>
+      <!-- parameter of type 'const rcu_flavor_struct*' -->
+      <parameter type-id='type-id-69' name='flavor' filepath='src/rculfhash.c' line='1586' column='1'/>
+      <!-- parameter of type 'pthread_attr_t*' -->
+      <parameter type-id='type-id-70' name='attr' filepath='src/rculfhash.c' line='1587' column='1'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-91'/>
+    </function-decl>
+    <!-- int cds_lfht_get_count_order_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_get_count_order_ulong' mangled-name='cds_lfht_get_count_order_ulong' filepath='src/rculfhash.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_get_count_order_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='598' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- unsigned int cds_lfht_fls_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_fls_ulong' mangled-name='cds_lfht_fls_ulong' filepath='src/rculfhash.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_fls_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='572' column='1'/>
+      <!-- unsigned int -->
+      <return type-id='type-id-26'/>
+    </function-decl>
+    <!-- cds_lfht* (unsigned long int, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-92'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-91'/>
+    </function-type>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-94'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-type>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-99'>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- int (cds_lfht_node*, void*) -->
+    <function-type size-in-bits='64' id='type-id-100'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-105'>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-106'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-107'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-104'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-108'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-84'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-109'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='384' id='type-id-110'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-22' id='type-id-111'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-112'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-113'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-26' size-in-bits='64' id='type-id-114'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-22' id='type-id-115'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-116' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-117'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-116'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-118' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-110' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-112' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-118'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-119' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-119'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-113' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-120' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-120'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-121'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-122' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-123' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-122'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-123'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-121' const='yes' id='type-id-124'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-124' size-in-bits='64' id='type-id-125'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-126'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-37' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-117' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-125' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-125' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-common.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-common.so.6.xml
new file mode 100644 (file)
index 0000000..07daf21
--- /dev/null
@@ -0,0 +1,901 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-common.so.6'>
+  <elf-needed>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_blocking -->
+    <elf-symbol name='__cds_wfcq_first_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_nonblocking -->
+    <elf-symbol name='__cds_wfcq_first_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_init -->
+    <elf-symbol name='__cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_blocking -->
+    <elf-symbol name='__cds_wfcq_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_nonblocking -->
+    <elf-symbol name='__cds_wfcq_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_blocking -->
+    <elf-symbol name='__cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_nonblocking -->
+    <elf-symbol name='__cds_wfcq_splice_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_init -->
+    <elf-symbol name='__cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_all -->
+    <elf-symbol name='__cds_wfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_blocking -->
+    <elf-symbol name='__cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_lock -->
+    <elf-symbol name='cds_wfcq_dequeue_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_unlock -->
+    <elf-symbol name='cds_wfcq_dequeue_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_destroy -->
+    <elf-symbol name='cds_wfcq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_empty -->
+    <elf-symbol name='cds_wfcq_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_enqueue -->
+    <elf-symbol name='cds_wfcq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_init -->
+    <elf-symbol name='cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_node_init -->
+    <elf-symbol name='cds_wfcq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_splice_blocking -->
+    <elf-symbol name='cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_dequeue_blocking -->
+    <elf-symbol name='cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_destroy -->
+    <elf-symbol name='cds_wfq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_enqueue -->
+    <elf-symbol name='cds_wfq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_init -->
+    <elf-symbol name='cds_wfq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_node_init -->
+    <elf-symbol name='cds_wfq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_destroy -->
+    <elf-symbol name='cds_wfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_empty -->
+    <elf-symbol name='cds_wfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_first -->
+    <elf-symbol name='cds_wfs_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_init -->
+    <elf-symbol name='cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_blocking -->
+    <elf-symbol name='cds_wfs_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_nonblocking -->
+    <elf-symbol name='cds_wfs_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_node_init -->
+    <elf-symbol name='cds_wfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_all_blocking -->
+    <elf-symbol name='cds_wfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_blocking -->
+    <elf-symbol name='cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_lock -->
+    <elf-symbol name='cds_wfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_unlock -->
+    <elf-symbol name='cds_wfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_push -->
+    <elf-symbol name='cds_wfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='wfqueue.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct cds_wfq_node -->
+    <class-decl name='cds_wfq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='48' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_node::next -->
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='49' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfq_queue -->
+    <class-decl name='cds_wfq_queue' size-in-bits='512' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='52' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_queue::head -->
+        <var-decl name='head' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfq_node** cds_wfq_queue::tail -->
+        <var-decl name='tail' type-id='type-id-13' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- cds_wfq_node cds_wfq_queue::dummy -->
+        <var-decl name='dummy' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- pthread_mutex_t cds_wfq_queue::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-15' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-14'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-15'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-16' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-16'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-17' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-18' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-17'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-18'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-19'/>
+    <!-- cds_wfq_node* -->
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfq_node** -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-13'/>
+    <!-- cds_wfq_queue* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-20'/>
+    <!-- cds_wfq_node* cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_dequeue_blocking' mangled-name='cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='59' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- cds_wfq_node* __cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='__cds_wfq_dequeue_blocking' mangled-name='__cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='54' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- void cds_wfq_enqueue(cds_wfq_queue*, cds_wfq_node*) -->
+    <function-decl name='cds_wfq_enqueue' mangled-name='cds_wfq_enqueue' filepath='src/wfqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_enqueue'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_destroy(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_destroy' mangled-name='cds_wfq_destroy' filepath='src/wfqueue.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_destroy'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_init(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_init' mangled-name='cds_wfq_init' filepath='src/wfqueue.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_init'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_node_init(cds_wfq_node*) -->
+    <function-decl name='cds_wfq_node_init' mangled-name='cds_wfq_node_init' filepath='src/wfqueue.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_node_init'>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='34' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfcqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-21'/>
+    <!-- unnamed&#45;enum&#45;underlying&#45;type -->
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-22'/>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfcq_head_ptr_t -->
+    <typedef-decl name='cds_wfcq_head_ptr_t' type-id='type-id-25' filepath='../include/urcu/wfcqueue.h' line='86' column='1' id='type-id-26'/>
+    <!-- union {__cds_wfcq_head* _h; cds_wfcq_head* h;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='83' column='1' id='type-id-25'>
+      <data-member access='private'>
+        <!-- __cds_wfcq_head* _h -->
+        <var-decl name='_h' type-id='type-id-27' visibility='default' filepath='../include/urcu/wfcqueue.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfcq_head* h -->
+        <var-decl name='h' type-id='type-id-28' visibility='default' filepath='../include/urcu/wfcqueue.h' line='85' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfcq_head -->
+    <class-decl name='__cds_wfcq_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='68' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node __cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- enum cds_wfcq_ret -->
+    <enum-decl name='cds_wfcq_ret' filepath='../include/urcu/wfcqueue.h' line='48' column='1' id='type-id-32'>
+      <underlying-type type-id='type-id-22'/>
+      <enumerator name='CDS_WFCQ_RET_WOULDBLOCK' value='-1'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_EMPTY' value='0'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_NON_EMPTY' value='1'/>
+      <enumerator name='CDS_WFCQ_RET_SRC_EMPTY' value='2'/>
+    </enum-decl>
+    <!-- __cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-27'/>
+    <!-- cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-28'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-24'/>
+    <!-- cds_wfcq_tail* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-33'/>
+    <!-- int* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-34'/>
+    <!-- cds_wfcq_node* __cds_wfcq_next_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_nonblocking' mangled-name='__cds_wfcq_next_nonblocking' filepath='src/wfcqueue.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='179' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='180' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='181' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_next_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_blocking' mangled-name='__cds_wfcq_next_blocking' filepath='src/wfcqueue.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='171' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='172' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='173' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_nonblocking' mangled-name='__cds_wfcq_first_nonblocking' filepath='src/wfcqueue.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='164' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='165' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_blocking' mangled-name='__cds_wfcq_first_blocking' filepath='src/wfcqueue.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='157' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='158' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_nonblocking' mangled-name='__cds_wfcq_splice_nonblocking' filepath='src/wfcqueue.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='147' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='148' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='149' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='150' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_blocking' mangled-name='__cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='137' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='138' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='139' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='140' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_nonblocking' mangled-name='__cds_wfcq_dequeue_with_state_nonblocking' filepath='src/wfcqueue.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='129' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='130' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='131' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_nonblocking' mangled-name='__cds_wfcq_dequeue_nonblocking' filepath='src/wfcqueue.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='122' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='123' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_blocking' mangled-name='__cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='114' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='115' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='116' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_blocking' mangled-name='__cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='107' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='108' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret cds_wfcq_splice_blocking(cds_wfcq_head*, cds_wfcq_tail*, cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_splice_blocking' mangled-name='cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='dest_q_head' filepath='src/wfcqueue.c' line='97' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='98' column='1'/>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='src_q_head' filepath='src/wfcqueue.c' line='99' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='100' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head*, cds_wfcq_tail*, int*) -->
+    <function-decl name='cds_wfcq_dequeue_with_state_blocking' mangled-name='cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='89' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='90' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='91' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_blocking(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_blocking' mangled-name='cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='82' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='83' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_unlock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_unlock' mangled-name='cds_wfcq_dequeue_unlock' filepath='src/wfcqueue.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_unlock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='75' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='76' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_lock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_lock' mangled-name='cds_wfcq_dequeue_lock' filepath='src/wfcqueue.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_lock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='69' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='70' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- bool cds_wfcq_enqueue(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_enqueue' mangled-name='cds_wfcq_enqueue' filepath='src/wfcqueue.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_enqueue'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='62' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='63' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='64' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- bool cds_wfcq_empty(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_empty' mangled-name='cds_wfcq_empty' filepath='src/wfcqueue.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_empty'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='55' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='56' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfcq_init(__cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_init' mangled-name='__cds_wfcq_init' filepath='src/wfcqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_init'>
+      <!-- parameter of type '__cds_wfcq_head*' -->
+      <parameter type-id='type-id-27' name='head' filepath='src/wfcqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_destroy(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_destroy' mangled-name='cds_wfcq_destroy' filepath='src/wfcqueue.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_destroy'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='43' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_init(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_init' mangled-name='cds_wfcq_init' filepath='src/wfcqueue.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_init'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='37' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_node_init(cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_node_init' mangled-name='cds_wfcq_node_init' filepath='src/wfcqueue.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_node_init'>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='32' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_wfs_head -->
+    <class-decl name='cds_wfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='82' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node cds_wfs_head::node -->
+        <var-decl name='node' type-id='type-id-36' visibility='default' filepath='../include/urcu/wfstack.h' line='83' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_node -->
+    <class-decl name='cds_wfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='72' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node* cds_wfs_node::next -->
+        <var-decl name='next' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfstack.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfs_stack_ptr_t -->
+    <typedef-decl name='cds_wfs_stack_ptr_t' type-id='type-id-38' filepath='../include/urcu/wfstack.h' line='103' column='1' id='type-id-39'/>
+    <!-- union {__cds_wfs_stack* _s; cds_wfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='100' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __cds_wfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-40' visibility='default' filepath='../include/urcu/wfstack.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfs_stack* s -->
+        <var-decl name='s' type-id='type-id-41' visibility='default' filepath='../include/urcu/wfstack.h' line='102' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfs_stack -->
+    <class-decl name='__cds_wfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='86' column='1' id='type-id-42'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* __cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='87' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_stack -->
+    <class-decl name='cds_wfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='90' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfstack.h' line='92' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-40'/>
+    <!-- cds_wfs_head* -->
+    <pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-43'/>
+    <!-- cds_wfs_node* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-41'/>
+    <!-- cds_wfs_head* __cds_wfs_pop_all(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_all' mangled-name='__cds_wfs_pop_all' filepath='src/wfstack.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_all'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='126' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_nonblocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_nonblocking' mangled-name='__cds_wfs_pop_with_state_nonblocking' filepath='src/wfstack.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='120' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='121' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_nonblocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_nonblocking' mangled-name='__cds_wfs_pop_nonblocking' filepath='src/wfstack.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='114' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_blocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_blocking' mangled-name='__cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='108' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='109' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_blocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_blocking' mangled-name='__cds_wfs_pop_blocking' filepath='src/wfstack.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='102' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_unlock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_unlock' mangled-name='cds_wfs_pop_unlock' filepath='src/wfstack.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_unlock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='97' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_lock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_lock' mangled-name='cds_wfs_pop_lock' filepath='src/wfstack.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_lock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='92' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_nonblocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_nonblocking' mangled-name='cds_wfs_next_nonblocking' filepath='src/wfstack.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_nonblocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='87' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_blocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_blocking' mangled-name='cds_wfs_next_blocking' filepath='src/wfstack.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_blocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='82' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_first(cds_wfs_head*) -->
+    <function-decl name='cds_wfs_first' mangled-name='cds_wfs_first' filepath='src/wfstack.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_first'>
+      <!-- parameter of type 'cds_wfs_head*' -->
+      <parameter type-id='type-id-43' name='head' filepath='src/wfstack.c' line='77' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_head* cds_wfs_pop_all_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_all_blocking' mangled-name='cds_wfs_pop_all_blocking' filepath='src/wfstack.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='72' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_with_state_blocking(cds_wfs_stack*, int*) -->
+    <function-decl name='cds_wfs_pop_with_state_blocking' mangled-name='cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_blocking' mangled-name='cds_wfs_pop_blocking' filepath='src/wfstack.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='61' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- int cds_wfs_push(cds_wfs_stack_ptr_t, cds_wfs_node*) -->
+    <function-decl name='cds_wfs_push' mangled-name='cds_wfs_push' filepath='src/wfstack.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_push'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- bool cds_wfs_empty(cds_wfs_stack_ptr_t) -->
+    <function-decl name='cds_wfs_empty' mangled-name='cds_wfs_empty' filepath='src/wfstack.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_empty'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='51' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfs_init(__cds_wfs_stack*) -->
+    <function-decl name='__cds_wfs_init' mangled-name='__cds_wfs_init' filepath='src/wfstack.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_init'>
+      <!-- parameter of type '__cds_wfs_stack*' -->
+      <parameter type-id='type-id-40' name='s' filepath='src/wfstack.c' line='46' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_destroy(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_destroy' mangled-name='cds_wfs_destroy' filepath='src/wfstack.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_destroy'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='41' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_init(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_init' mangled-name='cds_wfs_init' filepath='src/wfstack.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_init'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='36' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_node_init(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_node_init' mangled-name='cds_wfs_node_init' filepath='src/wfstack.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_node_init'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='31' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-45'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-46'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-47'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-48'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-49'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-50'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-51' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-52'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-51'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-45' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-54' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-54'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-48' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-56' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-57'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-56'/>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-57' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-14' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-52' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-mb.so.6.xml
new file mode 100644 (file)
index 0000000..95c4c19
--- /dev/null
@@ -0,0 +1,911 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-mb.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_mb -->
+    <elf-symbol name='call_rcu_after_fork_child_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_mb -->
+    <elf-symbol name='call_rcu_after_fork_parent_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_call_rcu_after_fork_parent' is-defined='yes'/>
+    <!-- call_rcu_before_fork_mb -->
+    <elf-symbol name='call_rcu_before_fork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_mb -->
+    <elf-symbol name='call_rcu_data_free_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_call_rcu_data_free' is-defined='yes'/>
+    <!-- call_rcu_mb -->
+    <elf-symbol name='call_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_mb -->
+    <elf-symbol name='create_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_create_call_rcu_data' is-defined='yes'/>
+    <!-- defer_rcu_mb -->
+    <elf-symbol name='defer_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_free_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_data_mb -->
+    <elf-symbol name='get_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_mb -->
+    <elf-symbol name='get_call_rcu_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_get_call_rcu_thread' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_mb -->
+    <elf-symbol name='get_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_mb -->
+    <elf-symbol name='get_default_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_mb -->
+    <elf-symbol name='get_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_get_thread_call_rcu_data' is-defined='yes'/>
+    <!-- rcu_barrier_mb -->
+    <elf-symbol name='rcu_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_mb -->
+    <elf-symbol name='rcu_defer_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_mb -->
+    <elf-symbol name='rcu_defer_barrier_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_mb -->
+    <elf-symbol name='rcu_defer_exit_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_exit' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_mb -->
+    <elf-symbol name='rcu_defer_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_defer_register_thread' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_mb -->
+    <elf-symbol name='rcu_defer_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_mb -->
+    <elf-symbol name='rcu_init_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_init' is-defined='yes'/>
+    <!-- rcu_read_lock_mb -->
+    <elf-symbol name='rcu_read_lock_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_mb -->
+    <elf-symbol name='rcu_read_ongoing_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_read_ongoing' is-defined='yes'/>
+    <!-- rcu_read_unlock_mb -->
+    <elf-symbol name='rcu_read_unlock_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_read_unlock' is-defined='yes'/>
+    <!-- rcu_register_thread_mb -->
+    <elf-symbol name='rcu_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_mb -->
+    <elf-symbol name='rcu_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_mb -->
+    <elf-symbol name='set_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_mb -->
+    <elf-symbol name='set_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_mb -->
+    <elf-symbol name='synchronize_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_synchronize_rcu' is-defined='yes'/>
+    <!-- urcu_mb_barrier -->
+    <elf-symbol name='urcu_mb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_barrier_mb' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu -->
+    <elf-symbol name='urcu_mb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_mb' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_mb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_mb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_mb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_mb' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_data_free -->
+    <elf-symbol name='urcu_mb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_create_call_rcu_data -->
+    <elf-symbol name='urcu_mb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_barrier -->
+    <elf-symbol name='urcu_mb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_barrier_thread -->
+    <elf-symbol name='urcu_mb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_exit -->
+    <elf-symbol name='urcu_mb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_rcu -->
+    <elf-symbol name='urcu_mb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_register_thread -->
+    <elf-symbol name='urcu_mb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_unregister_thread -->
+    <elf-symbol name='urcu_mb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_unregister_thread_mb' is-defined='yes'/>
+    <!-- urcu_mb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_mb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_init -->
+    <elf-symbol name='urcu_mb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_lock -->
+    <elf-symbol name='urcu_mb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_ongoing -->
+    <elf-symbol name='urcu_mb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_unlock -->
+    <elf-symbol name='urcu_mb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_mb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_register_rculfhash_atfork_mb' is-defined='yes'/>
+    <!-- urcu_mb_register_thread -->
+    <elf-symbol name='urcu_mb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_mb' is-defined='yes'/>
+    <!-- urcu_mb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_cpu_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_mb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_thread_call_rcu_data_mb' is-defined='yes'/>
+    <!-- urcu_mb_synchronize_rcu -->
+    <elf-symbol name='urcu_mb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_mb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_unregister_thread -->
+    <elf-symbol name='urcu_mb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_mb' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_mb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_mb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_mb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_unregister_rculfhash_atfork' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_mb -->
+    <elf-symbol name='rcu_flavor_mb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_mb_flavor' is-defined='yes'/>
+    <!-- rcu_gp_mb -->
+    <elf-symbol name='rcu_gp_mb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_mb -->
+    <elf-symbol name='rcu_reader_mb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_flavor -->
+    <elf-symbol name='urcu_mb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_gp -->
+    <elf-symbol name='urcu_mb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_mb' is-defined='yes'/>
+    <!-- urcu_mb_reader -->
+    <elf-symbol name='urcu_mb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_mb' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_mb_gp -->
+    <var-decl name='urcu_mb_gp' type-id='type-id-10' mangled-name='urcu_mb_gp' visibility='default' filepath='../include/urcu/static/urcu-mb.h' line='60' column='1' elf-symbol-id='urcu_mb_gp'/>
+    <!-- urcu_reader urcu_mb_reader -->
+    <var-decl name='urcu_mb_reader' type-id='type-id-13' mangled-name='urcu_mb_reader' visibility='default' filepath='../include/urcu/static/urcu-mb.h' line='62' column='1' elf-symbol-id='urcu_mb_reader'/>
+    <!-- const rcu_flavor_struct urcu_mb_flavor -->
+    <var-decl name='urcu_mb_flavor' type-id='type-id-40' mangled-name='rcu_flavor_mb' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_mb'/>
+    <!-- void urcu_mb_defer_exit() -->
+    <function-decl name='urcu_mb_defer_exit' mangled-name='rcu_defer_exit_mb' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_unregister_thread() -->
+    <function-decl name='urcu_mb_defer_unregister_thread' mangled-name='urcu_mb_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_defer_register_thread() -->
+    <function-decl name='urcu_mb_defer_register_thread' mangled-name='rcu_defer_register_thread_mb' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_mb_defer_rcu' mangled-name='defer_rcu_mb' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_mb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_barrier() -->
+    <function-decl name='urcu_mb_defer_barrier' mangled-name='rcu_defer_barrier_mb' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_barrier_thread() -->
+    <function-decl name='urcu_mb_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_mb' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_mb_unregister_rculfhash_atfork' mangled-name='urcu_unregister_rculfhash_atfork_mb' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_mb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_mb_register_rculfhash_atfork' mangled-name='urcu_mb_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_mb_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_mb' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_mb_call_rcu_after_fork_parent' mangled-name='call_rcu_after_fork_parent_mb' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_before_fork() -->
+    <function-decl name='urcu_mb_call_rcu_before_fork' mangled-name='urcu_mb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_barrier() -->
+    <function-decl name='urcu_mb_barrier' mangled-name='urcu_mb_barrier' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_mb_free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_mb_call_rcu_data_free' mangled-name='call_rcu_data_free_mb' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_mb_call_rcu' mangled-name='urcu_mb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_mb_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_mb_set_thread_call_rcu_data' mangled-name='urcu_mb_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_thread_call_rcu_data' mangled-name='get_thread_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_call_rcu_data' mangled-name='urcu_mb_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_default_call_rcu_data' mangled-name='urcu_mb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_mb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_mb_set_cpu_call_rcu_data' mangled-name='urcu_mb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_mb_create_call_rcu_data' mangled-name='create_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_mb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_mb_get_call_rcu_thread' mangled-name='get_call_rcu_thread_mb' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_mb_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_mb' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_mb_unregister_thread() -->
+    <function-decl name='urcu_mb_unregister_thread' mangled-name='urcu_mb_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_register_thread() -->
+    <function-decl name='urcu_mb_register_thread' mangled-name='urcu_mb_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_read_ongoing() -->
+    <function-decl name='urcu_mb_read_ongoing' mangled-name='rcu_read_ongoing_mb' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_read_unlock() -->
+    <function-decl name='urcu_mb_read_unlock' mangled-name='rcu_read_unlock_mb' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_read_lock() -->
+    <function-decl name='urcu_mb_read_lock' mangled-name='rcu_read_lock_mb' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_synchronize_rcu() -->
+    <function-decl name='urcu_mb_synchronize_rcu' mangled-name='synchronize_rcu_mb' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_init() -->
+    <function-decl name='urcu_mb_init' mangled-name='rcu_init_mb' filepath='src/urcu.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-memb.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-memb.so.6.xml
new file mode 100644 (file)
index 0000000..b97b4c4
--- /dev/null
@@ -0,0 +1,917 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-memb.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_memb -->
+    <elf-symbol name='call_rcu_after_fork_child_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_memb -->
+    <elf-symbol name='call_rcu_after_fork_parent_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_memb -->
+    <elf-symbol name='call_rcu_before_fork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_memb -->
+    <elf-symbol name='call_rcu_data_free_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_memb -->
+    <elf-symbol name='call_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_memb -->
+    <elf-symbol name='create_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_memb -->
+    <elf-symbol name='defer_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_memb -->
+    <elf-symbol name='get_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_memb -->
+    <elf-symbol name='get_call_rcu_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_memb -->
+    <elf-symbol name='get_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_memb -->
+    <elf-symbol name='get_default_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_memb -->
+    <elf-symbol name='get_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_thread_call_rcu_data' is-defined='yes'/>
+    <!-- rcu_barrier_memb -->
+    <elf-symbol name='rcu_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_barrier' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_memb -->
+    <elf-symbol name='rcu_defer_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_memb -->
+    <elf-symbol name='rcu_defer_barrier_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_memb -->
+    <elf-symbol name='rcu_defer_exit_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_memb -->
+    <elf-symbol name='rcu_defer_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_memb -->
+    <elf-symbol name='rcu_defer_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_unregister_thread' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_memb -->
+    <elf-symbol name='rcu_init_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_init' is-defined='yes'/>
+    <!-- rcu_read_lock_memb -->
+    <elf-symbol name='rcu_read_lock_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_memb -->
+    <elf-symbol name='rcu_read_ongoing_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_memb -->
+    <elf-symbol name='rcu_read_unlock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_memb -->
+    <elf-symbol name='rcu_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_memb -->
+    <elf-symbol name='rcu_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_memb -->
+    <elf-symbol name='set_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_memb -->
+    <elf-symbol name='set_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_set_thread_call_rcu_data' is-defined='yes'/>
+    <!-- synchronize_rcu_memb -->
+    <elf-symbol name='synchronize_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_barrier -->
+    <elf-symbol name='urcu_memb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu -->
+    <elf-symbol name='urcu_memb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_memb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_data_free -->
+    <elf-symbol name='urcu_memb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_data_free_memb' is-defined='yes'/>
+    <!-- urcu_memb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier -->
+    <elf-symbol name='urcu_memb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier_thread -->
+    <elf-symbol name='urcu_memb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_exit -->
+    <elf-symbol name='urcu_memb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_rcu -->
+    <elf-symbol name='urcu_memb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_register_thread -->
+    <elf-symbol name='urcu_memb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_unregister_thread -->
+    <elf-symbol name='urcu_memb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='free_all_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_memb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_init -->
+    <elf-symbol name='urcu_memb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_lock -->
+    <elf-symbol name='urcu_memb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_ongoing -->
+    <elf-symbol name='urcu_memb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_ongoing_memb' is-defined='yes'/>
+    <!-- urcu_memb_read_unlock -->
+    <elf-symbol name='urcu_memb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_unlock_memb' is-defined='yes'/>
+    <!-- urcu_memb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_thread -->
+    <elf-symbol name='urcu_memb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_synchronize_rcu -->
+    <elf-symbol name='urcu_memb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_unregister_rculfhash_atfork_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_thread -->
+    <elf-symbol name='urcu_memb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_memb' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_memb -->
+    <elf-symbol name='rcu_flavor_memb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_flavor' is-defined='yes'/>
+    <!-- rcu_gp_memb -->
+    <elf-symbol name='rcu_gp_memb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_has_sys_membarrier_memb -->
+    <elf-symbol name='rcu_has_sys_membarrier_memb' size='4' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_has_sys_membarrier' is-defined='yes'/>
+    <!-- rcu_reader_memb -->
+    <elf-symbol name='rcu_reader_memb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_flavor -->
+    <elf-symbol name='urcu_memb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_gp -->
+    <elf-symbol name='urcu_memb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_memb' is-defined='yes'/>
+    <!-- urcu_memb_has_sys_membarrier -->
+    <elf-symbol name='urcu_memb_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_reader -->
+    <elf-symbol name='urcu_memb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_memb' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- int urcu_memb_has_sys_membarrier -->
+    <var-decl name='urcu_memb_has_sys_membarrier' type-id='type-id-5' mangled-name='rcu_has_sys_membarrier_memb' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='72' column='1' elf-symbol-id='rcu_has_sys_membarrier_memb'/>
+    <!-- urcu_gp urcu_memb_gp -->
+    <var-decl name='urcu_memb_gp' type-id='type-id-10' mangled-name='urcu_memb_gp' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='83' column='1' elf-symbol-id='urcu_memb_gp'/>
+    <!-- urcu_reader urcu_memb_reader -->
+    <var-decl name='urcu_memb_reader' type-id='type-id-13' mangled-name='urcu_memb_reader' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='85' column='1' elf-symbol-id='urcu_memb_reader'/>
+    <!-- const rcu_flavor_struct urcu_memb_flavor -->
+    <var-decl name='urcu_memb_flavor' type-id='type-id-40' mangled-name='rcu_flavor_memb' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_memb'/>
+    <!-- void urcu_memb_defer_exit() -->
+    <function-decl name='urcu_memb_defer_exit' mangled-name='urcu_memb_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_unregister_thread() -->
+    <function-decl name='urcu_memb_defer_unregister_thread' mangled-name='rcu_defer_unregister_thread_memb' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_defer_register_thread() -->
+    <function-decl name='urcu_memb_defer_register_thread' mangled-name='urcu_memb_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_memb_defer_rcu' mangled-name='defer_rcu_memb' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_memb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier() -->
+    <function-decl name='urcu_memb_defer_barrier' mangled-name='rcu_defer_barrier_memb' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier_thread() -->
+    <function-decl name='urcu_memb_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_memb' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_unregister_rculfhash_atfork' mangled-name='urcu_memb_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_memb' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_memb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_memb' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_parent' mangled-name='urcu_memb_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_before_fork() -->
+    <function-decl name='urcu_memb_call_rcu_before_fork' mangled-name='urcu_memb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_barrier() -->
+    <function-decl name='urcu_memb_barrier' mangled-name='rcu_barrier_memb' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_memb_free_all_cpu_call_rcu_data' mangled-name='urcu_memb_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_memb_call_rcu_data_free' mangled-name='urcu_memb_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_memb_call_rcu' mangled-name='urcu_memb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_memb_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_thread_call_rcu_data' mangled-name='set_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_thread_call_rcu_data' mangled-name='get_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_call_rcu_data' mangled-name='get_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_default_call_rcu_data' mangled-name='urcu_memb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_memb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_cpu_call_rcu_data' mangled-name='urcu_memb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_memb_create_call_rcu_data' mangled-name='urcu_memb_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_memb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_memb_get_call_rcu_thread' mangled-name='urcu_memb_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_memb_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_memb_init() -->
+    <function-decl name='urcu_memb_init' mangled-name='rcu_init_memb' filepath='src/urcu.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_thread() -->
+    <function-decl name='urcu_memb_unregister_thread' mangled-name='urcu_memb_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_thread() -->
+    <function-decl name='urcu_memb_register_thread' mangled-name='urcu_memb_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_read_ongoing() -->
+    <function-decl name='urcu_memb_read_ongoing' mangled-name='urcu_memb_read_ongoing' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_read_unlock() -->
+    <function-decl name='urcu_memb_read_unlock' mangled-name='urcu_memb_read_unlock' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_read_lock() -->
+    <function-decl name='urcu_memb_read_lock' mangled-name='rcu_read_lock_memb' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_synchronize_rcu() -->
+    <function-decl name='urcu_memb_synchronize_rcu' mangled-name='urcu_memb_synchronize_rcu' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-qsbr.so.6.xml
new file mode 100644 (file)
index 0000000..7279983
--- /dev/null
@@ -0,0 +1,938 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-qsbr.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_child_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_parent_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_qsbr -->
+    <elf-symbol name='call_rcu_before_fork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_call_rcu_before_fork' is-defined='yes'/>
+    <!-- call_rcu_data_free_qsbr -->
+    <elf-symbol name='call_rcu_data_free_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_qsbr -->
+    <elf-symbol name='call_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_qsbr -->
+    <elf-symbol name='create_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_qsbr -->
+    <elf-symbol name='defer_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data -->
+    <elf-symbol name='free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_free_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_data_qsbr -->
+    <elf-symbol name='get_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_qsbr -->
+    <elf-symbol name='get_call_rcu_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='get_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_qsbr -->
+    <elf-symbol name='get_default_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='get_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_qsbr -->
+    <elf-symbol name='rcu_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_qsbr -->
+    <elf-symbol name='rcu_defer_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_qsbr -->
+    <elf-symbol name='rcu_defer_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_defer_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_qsbr -->
+    <elf-symbol name='rcu_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_quiescent_state_qsbr -->
+    <elf-symbol name='rcu_quiescent_state_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_qsbr -->
+    <elf-symbol name='rcu_read_lock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_qsbr -->
+    <elf-symbol name='rcu_read_ongoing_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_read_ongoing' is-defined='yes'/>
+    <!-- rcu_read_unlock_qsbr -->
+    <elf-symbol name='rcu_read_unlock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_qsbr -->
+    <elf-symbol name='rcu_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_offline_qsbr -->
+    <elf-symbol name='rcu_thread_offline_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_online_qsbr -->
+    <elf-symbol name='rcu_thread_online_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='set_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_set_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='set_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_set_thread_call_rcu_data' is-defined='yes'/>
+    <!-- synchronize_rcu_qsbr -->
+    <elf-symbol name='synchronize_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_barrier -->
+    <elf-symbol name='urcu_qsbr_barrier' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_barrier_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu -->
+    <elf-symbol name='urcu_qsbr_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_qsbr_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_qsbr_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_before_fork -->
+    <elf-symbol name='urcu_qsbr_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_data_free -->
+    <elf-symbol name='urcu_qsbr_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_data_free_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_all_cpu_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_create_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_barrier -->
+    <elf-symbol name='urcu_qsbr_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_barrier_thread -->
+    <elf-symbol name='urcu_qsbr_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_exit -->
+    <elf-symbol name='urcu_qsbr_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_rcu -->
+    <elf-symbol name='urcu_qsbr_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_register_thread -->
+    <elf-symbol name='urcu_qsbr_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_unregister_thread -->
+    <elf-symbol name='urcu_qsbr_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_unregister_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_exit -->
+    <elf-symbol name='urcu_qsbr_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_exit_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_call_rcu_thread -->
+    <elf-symbol name='urcu_qsbr_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_thread_call_rcu_data_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_quiescent_state -->
+    <elf-symbol name='urcu_qsbr_quiescent_state' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_quiescent_state_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_read_lock -->
+    <elf-symbol name='urcu_qsbr_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_read_ongoing -->
+    <elf-symbol name='urcu_qsbr_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_read_unlock -->
+    <elf-symbol name='urcu_qsbr_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_unlock_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_qsbr_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_register_thread -->
+    <elf-symbol name='urcu_qsbr_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_synchronize_rcu -->
+    <elf-symbol name='urcu_qsbr_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_thread_offline -->
+    <elf-symbol name='urcu_qsbr_thread_offline' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_thread_offline_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_thread_online -->
+    <elf-symbol name='urcu_qsbr_thread_online' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_thread_online_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_qsbr_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_unregister_thread -->
+    <elf-symbol name='urcu_qsbr_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_qsbr' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_qsbr -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_qsbr -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_unregister_rculfhash_atfork' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_qsbr -->
+    <elf-symbol name='rcu_flavor_qsbr' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_qsbr -->
+    <elf-symbol name='rcu_gp_qsbr' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_qsbr_gp' is-defined='yes'/>
+    <!-- rcu_reader_qsbr -->
+    <elf-symbol name='rcu_reader_qsbr' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_flavor -->
+    <elf-symbol name='urcu_qsbr_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_flavor_qsbr' is-defined='yes'/>
+    <!-- urcu_qsbr_gp -->
+    <elf-symbol name='urcu_qsbr_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_reader -->
+    <elf-symbol name='urcu_qsbr_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_qsbr' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-qsbr.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_qsbr_reader -->
+    <class-decl name='urcu_qsbr_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='65' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_qsbr_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_qsbr_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- int urcu_qsbr_reader::waiting -->
+        <var-decl name='waiting' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- pthread_t urcu_qsbr_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_qsbr_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_qsbr_gp -->
+    <var-decl name='urcu_qsbr_gp' type-id='type-id-10' mangled-name='rcu_gp_qsbr' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='63' column='1' elf-symbol-id='rcu_gp_qsbr'/>
+    <!-- urcu_qsbr_reader urcu_qsbr_reader -->
+    <var-decl name='urcu_qsbr_reader' type-id='type-id-13' mangled-name='urcu_qsbr_reader' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='76' column='1' elf-symbol-id='urcu_qsbr_reader'/>
+    <!-- const rcu_flavor_struct urcu_qsbr_flavor -->
+    <var-decl name='urcu_qsbr_flavor' type-id='type-id-40' mangled-name='urcu_qsbr_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='urcu_qsbr_flavor'/>
+    <!-- void urcu_qsbr_defer_exit() -->
+    <function-decl name='urcu_qsbr_defer_exit' mangled-name='urcu_qsbr_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_unregister_thread() -->
+    <function-decl name='urcu_qsbr_defer_unregister_thread' mangled-name='urcu_qsbr_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_defer_register_thread() -->
+    <function-decl name='urcu_qsbr_defer_register_thread' mangled-name='urcu_qsbr_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_qsbr_defer_rcu' mangled-name='defer_rcu_qsbr' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_qsbr'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_barrier() -->
+    <function-decl name='urcu_qsbr_defer_barrier' mangled-name='rcu_defer_barrier_qsbr' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_barrier_thread() -->
+    <function-decl name='urcu_qsbr_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_qsbr' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_qsbr_unregister_rculfhash_atfork' mangled-name='urcu_unregister_rculfhash_atfork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_qsbr'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_qsbr_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_qsbr'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_qsbr_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_qsbr' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_qsbr_call_rcu_after_fork_parent' mangled-name='urcu_qsbr_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_before_fork() -->
+    <function-decl name='urcu_qsbr_call_rcu_before_fork' mangled-name='call_rcu_before_fork_qsbr' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_barrier() -->
+    <function-decl name='urcu_qsbr_barrier' mangled-name='urcu_qsbr_barrier' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_call_rcu_data_free' mangled-name='urcu_qsbr_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_qsbr_call_rcu' mangled-name='urcu_qsbr_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_qsbr_create_all_cpu_call_rcu_data' mangled-name='urcu_qsbr_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_set_thread_call_rcu_data' mangled-name='set_thread_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_thread_call_rcu_data' mangled-name='urcu_qsbr_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_call_rcu_data' mangled-name='get_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_default_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_default_call_rcu_data' mangled-name='urcu_qsbr_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_qsbr_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_set_cpu_call_rcu_data' mangled-name='set_cpu_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_qsbr_create_call_rcu_data' mangled-name='urcu_qsbr_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_qsbr_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_get_call_rcu_thread' mangled-name='urcu_qsbr_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_qsbr_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_qsbr' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_qsbr_exit() -->
+    <function-decl name='urcu_qsbr_exit' mangled-name='urcu_qsbr_exit' filepath='src/urcu-qsbr.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_unregister_thread() -->
+    <function-decl name='urcu_qsbr_unregister_thread' mangled-name='urcu_qsbr_unregister_thread' filepath='src/urcu-qsbr.c' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_register_thread() -->
+    <function-decl name='urcu_qsbr_register_thread' mangled-name='urcu_qsbr_register_thread' filepath='src/urcu-qsbr.c' line='481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_thread_online() -->
+    <function-decl name='urcu_qsbr_thread_online' mangled-name='urcu_qsbr_thread_online' filepath='src/urcu-qsbr.c' line='474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_thread_online'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_thread_offline() -->
+    <function-decl name='urcu_qsbr_thread_offline' mangled-name='urcu_qsbr_thread_offline' filepath='src/urcu-qsbr.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_thread_offline'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_quiescent_state() -->
+    <function-decl name='urcu_qsbr_quiescent_state' mangled-name='urcu_qsbr_quiescent_state' filepath='src/urcu-qsbr.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_quiescent_state'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_read_ongoing() -->
+    <function-decl name='urcu_qsbr_read_ongoing' mangled-name='rcu_read_ongoing_qsbr' filepath='src/urcu-qsbr.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_qsbr'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_read_unlock() -->
+    <function-decl name='urcu_qsbr_read_unlock' mangled-name='urcu_qsbr_read_unlock' filepath='src/urcu-qsbr.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_read_lock() -->
+    <function-decl name='urcu_qsbr_read_lock' mangled-name='rcu_read_lock_qsbr' filepath='src/urcu-qsbr.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_synchronize_rcu() -->
+    <function-decl name='urcu_qsbr_synchronize_rcu' mangled-name='urcu_qsbr_synchronize_rcu' filepath='src/urcu-qsbr.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu-signal.so.6.xml
new file mode 100644 (file)
index 0000000..3fecad8
--- /dev/null
@@ -0,0 +1,920 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-signal.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_sig -->
+    <elf-symbol name='call_rcu_after_fork_child_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_sig -->
+    <elf-symbol name='call_rcu_after_fork_parent_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_sig -->
+    <elf-symbol name='call_rcu_before_fork_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_call_rcu_before_fork' is-defined='yes'/>
+    <!-- call_rcu_data_free_sig -->
+    <elf-symbol name='call_rcu_data_free_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_call_rcu_data_free' is-defined='yes'/>
+    <!-- call_rcu_sig -->
+    <elf-symbol name='call_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_sig -->
+    <elf-symbol name='create_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_sig -->
+    <elf-symbol name='defer_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_sig -->
+    <elf-symbol name='get_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_sig -->
+    <elf-symbol name='get_call_rcu_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_get_call_rcu_thread' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_sig -->
+    <elf-symbol name='get_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_sig -->
+    <elf-symbol name='get_default_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_sig -->
+    <elf-symbol name='get_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_sig -->
+    <elf-symbol name='rcu_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_sig -->
+    <elf-symbol name='rcu_defer_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_sig -->
+    <elf-symbol name='rcu_defer_barrier_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_sig -->
+    <elf-symbol name='rcu_defer_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_exit' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_sig -->
+    <elf-symbol name='rcu_defer_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_sig -->
+    <elf-symbol name='rcu_defer_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_defer_unregister_thread' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_sig -->
+    <elf-symbol name='rcu_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_sig -->
+    <elf-symbol name='rcu_init_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_init' is-defined='yes'/>
+    <!-- rcu_read_lock_sig -->
+    <elf-symbol name='rcu_read_lock_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_sig -->
+    <elf-symbol name='rcu_read_ongoing_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_read_ongoing' is-defined='yes'/>
+    <!-- rcu_read_unlock_sig -->
+    <elf-symbol name='rcu_read_unlock_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_read_unlock' is-defined='yes'/>
+    <!-- rcu_register_thread_sig -->
+    <elf-symbol name='rcu_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_sig -->
+    <elf-symbol name='rcu_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_sig -->
+    <elf-symbol name='set_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_set_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_sig -->
+    <elf-symbol name='set_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_sig -->
+    <elf-symbol name='synchronize_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_sig -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_barrier -->
+    <elf-symbol name='urcu_signal_barrier' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_barrier_sig' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu -->
+    <elf-symbol name='urcu_signal_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_sig' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_signal_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_signal_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_sig' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_before_fork -->
+    <elf-symbol name='urcu_signal_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_data_free -->
+    <elf-symbol name='urcu_signal_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_create_call_rcu_data -->
+    <elf-symbol name='urcu_signal_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_defer_barrier -->
+    <elf-symbol name='urcu_signal_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_barrier_thread -->
+    <elf-symbol name='urcu_signal_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_exit -->
+    <elf-symbol name='urcu_signal_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_rcu -->
+    <elf-symbol name='urcu_signal_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='defer_rcu_sig' is-defined='yes'/>
+    <!-- urcu_signal_defer_register_thread -->
+    <elf-symbol name='urcu_signal_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_sig' is-defined='yes'/>
+    <!-- urcu_signal_defer_unregister_thread -->
+    <elf-symbol name='urcu_signal_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_exit -->
+    <elf-symbol name='urcu_signal_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_exit_sig' is-defined='yes'/>
+    <!-- urcu_signal_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='free_all_cpu_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_get_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_get_call_rcu_thread -->
+    <elf-symbol name='urcu_signal_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_thread_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_init -->
+    <elf-symbol name='urcu_signal_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_read_lock -->
+    <elf-symbol name='urcu_signal_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_lock_sig' is-defined='yes'/>
+    <!-- urcu_signal_read_ongoing -->
+    <elf-symbol name='urcu_signal_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_read_unlock -->
+    <elf-symbol name='urcu_signal_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_signal_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_register_rculfhash_atfork_sig' is-defined='yes'/>
+    <!-- urcu_signal_register_thread -->
+    <elf-symbol name='urcu_signal_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_sig' is-defined='yes'/>
+    <!-- urcu_signal_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_signal_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_thread_call_rcu_data_sig' is-defined='yes'/>
+    <!-- urcu_signal_synchronize_rcu -->
+    <elf-symbol name='urcu_signal_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_sig' is-defined='yes'/>
+    <!-- urcu_signal_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_signal_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_unregister_thread -->
+    <elf-symbol name='urcu_signal_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_sig' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_sig -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_sig' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_signal_unregister_rculfhash_atfork' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_sig -->
+    <elf-symbol name='rcu_flavor_sig' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_sig -->
+    <elf-symbol name='rcu_gp_sig' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_sig -->
+    <elf-symbol name='rcu_reader_sig' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_flavor -->
+    <elf-symbol name='urcu_signal_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_flavor_sig' is-defined='yes'/>
+    <!-- urcu_signal_gp -->
+    <elf-symbol name='urcu_signal_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_sig' is-defined='yes'/>
+    <!-- urcu_signal_reader -->
+    <elf-symbol name='urcu_signal_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_sig' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_signal_gp -->
+    <var-decl name='urcu_signal_gp' type-id='type-id-10' mangled-name='urcu_signal_gp' visibility='default' filepath='../include/urcu/static/urcu-signal.h' line='61' column='1' elf-symbol-id='urcu_signal_gp'/>
+    <!-- urcu_reader urcu_signal_reader -->
+    <var-decl name='urcu_signal_reader' type-id='type-id-13' mangled-name='urcu_signal_reader' visibility='default' filepath='../include/urcu/static/urcu-signal.h' line='63' column='1' elf-symbol-id='urcu_signal_reader'/>
+    <!-- const rcu_flavor_struct urcu_signal_flavor -->
+    <var-decl name='urcu_signal_flavor' type-id='type-id-40' mangled-name='urcu_signal_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='urcu_signal_flavor'/>
+    <!-- void urcu_signal_defer_exit() -->
+    <function-decl name='urcu_signal_defer_exit' mangled-name='rcu_defer_exit_sig' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_unregister_thread() -->
+    <function-decl name='urcu_signal_defer_unregister_thread' mangled-name='rcu_defer_unregister_thread_sig' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_defer_register_thread() -->
+    <function-decl name='urcu_signal_defer_register_thread' mangled-name='urcu_signal_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_signal_defer_rcu' mangled-name='urcu_signal_defer_rcu' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_barrier() -->
+    <function-decl name='urcu_signal_defer_barrier' mangled-name='rcu_defer_barrier_sig' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_barrier_thread() -->
+    <function-decl name='urcu_signal_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_sig' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_signal_unregister_rculfhash_atfork' mangled-name='urcu_unregister_rculfhash_atfork_sig' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_unregister_rculfhash_atfork_sig'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_signal_register_rculfhash_atfork' mangled-name='urcu_signal_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_signal_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_sig' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_signal_call_rcu_after_fork_parent' mangled-name='urcu_signal_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_before_fork() -->
+    <function-decl name='urcu_signal_call_rcu_before_fork' mangled-name='call_rcu_before_fork_sig' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_barrier() -->
+    <function-decl name='urcu_signal_barrier' mangled-name='urcu_signal_barrier' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_signal_free_all_cpu_call_rcu_data' mangled-name='urcu_signal_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_signal_call_rcu_data_free' mangled-name='call_rcu_data_free_sig' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_signal_call_rcu' mangled-name='urcu_signal_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_signal_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_signal_set_thread_call_rcu_data' mangled-name='urcu_signal_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_thread_call_rcu_data' mangled-name='urcu_signal_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_call_rcu_data' mangled-name='urcu_signal_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_default_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_default_call_rcu_data' mangled-name='urcu_signal_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_signal_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_signal_set_cpu_call_rcu_data' mangled-name='set_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_signal_create_call_rcu_data' mangled-name='urcu_signal_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_signal_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_signal_get_call_rcu_thread' mangled-name='get_call_rcu_thread_sig' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_signal_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_sig' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_signal_exit() -->
+    <function-decl name='urcu_signal_exit' mangled-name='urcu_signal_exit' filepath='src/urcu.c' line='666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_init() -->
+    <function-decl name='urcu_signal_init' mangled-name='rcu_init_sig' filepath='src/urcu.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_unregister_thread() -->
+    <function-decl name='urcu_signal_unregister_thread' mangled-name='urcu_signal_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_register_thread() -->
+    <function-decl name='urcu_signal_register_thread' mangled-name='urcu_signal_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_read_ongoing() -->
+    <function-decl name='urcu_signal_read_ongoing' mangled-name='rcu_read_ongoing_sig' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_sig'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_read_unlock() -->
+    <function-decl name='urcu_signal_read_unlock' mangled-name='rcu_read_unlock_sig' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_read_lock() -->
+    <function-decl name='urcu_signal_read_lock' mangled-name='urcu_signal_read_lock' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_synchronize_rcu() -->
+    <function-decl name='urcu_signal_synchronize_rcu' mangled-name='urcu_signal_synchronize_rcu' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu.so.6.xml b/extras/abi/0.12/x86_64-pc-linux-gnu/liburcu.so.6.xml
new file mode 100644 (file)
index 0000000..a7722f6
--- /dev/null
@@ -0,0 +1,917 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu.so.6'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.6'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_memb -->
+    <elf-symbol name='call_rcu_after_fork_child_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_call_rcu_after_fork_child' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_memb -->
+    <elf-symbol name='call_rcu_after_fork_parent_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_memb -->
+    <elf-symbol name='call_rcu_before_fork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_memb -->
+    <elf-symbol name='call_rcu_data_free_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_memb -->
+    <elf-symbol name='call_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_create_all_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- create_call_rcu_data_memb -->
+    <elf-symbol name='create_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_memb -->
+    <elf-symbol name='defer_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_rcu' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_memb -->
+    <elf-symbol name='get_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_call_rcu_data' is-defined='yes'/>
+    <!-- get_call_rcu_thread_memb -->
+    <elf-symbol name='get_call_rcu_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_memb -->
+    <elf-symbol name='get_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_cpu_call_rcu_data' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_memb -->
+    <elf-symbol name='get_default_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_memb -->
+    <elf-symbol name='get_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_get_thread_call_rcu_data' is-defined='yes'/>
+    <!-- rcu_barrier_memb -->
+    <elf-symbol name='rcu_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_barrier' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_memb -->
+    <elf-symbol name='rcu_defer_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_memb -->
+    <elf-symbol name='rcu_defer_barrier_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_barrier_thread' is-defined='yes'/>
+    <!-- rcu_defer_exit_memb -->
+    <elf-symbol name='rcu_defer_exit_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_memb -->
+    <elf-symbol name='rcu_defer_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_memb -->
+    <elf-symbol name='rcu_defer_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_defer_unregister_thread' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_memb -->
+    <elf-symbol name='rcu_init_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_init' is-defined='yes'/>
+    <!-- rcu_read_lock_memb -->
+    <elf-symbol name='rcu_read_lock_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_read_lock' is-defined='yes'/>
+    <!-- rcu_read_ongoing_memb -->
+    <elf-symbol name='rcu_read_ongoing_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_memb -->
+    <elf-symbol name='rcu_read_unlock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_memb -->
+    <elf-symbol name='rcu_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_memb -->
+    <elf-symbol name='rcu_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_memb -->
+    <elf-symbol name='set_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_memb -->
+    <elf-symbol name='set_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_set_thread_call_rcu_data' is-defined='yes'/>
+    <!-- synchronize_rcu_memb -->
+    <elf-symbol name='synchronize_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_barrier -->
+    <elf-symbol name='urcu_memb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu -->
+    <elf-symbol name='urcu_memb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_after_fork_parent_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_memb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_before_fork_memb' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_data_free -->
+    <elf-symbol name='urcu_memb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' alias='call_rcu_data_free_memb' is-defined='yes'/>
+    <!-- urcu_memb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='create_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier -->
+    <elf-symbol name='urcu_memb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier_thread -->
+    <elf-symbol name='urcu_memb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_exit -->
+    <elf-symbol name='urcu_memb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_exit_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_rcu -->
+    <elf-symbol name='urcu_memb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_register_thread -->
+    <elf-symbol name='urcu_memb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_defer_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_defer_unregister_thread -->
+    <elf-symbol name='urcu_memb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='free_all_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_memb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_call_rcu_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='get_default_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_init -->
+    <elf-symbol name='urcu_memb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_lock -->
+    <elf-symbol name='urcu_memb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_ongoing -->
+    <elf-symbol name='urcu_memb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_ongoing_memb' is-defined='yes'/>
+    <!-- urcu_memb_read_unlock -->
+    <elf-symbol name='urcu_memb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_read_unlock_memb' is-defined='yes'/>
+    <!-- urcu_memb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_thread -->
+    <elf-symbol name='urcu_memb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_register_thread_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' alias='set_cpu_call_rcu_data_memb' is-defined='yes'/>
+    <!-- urcu_memb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_synchronize_rcu -->
+    <elf-symbol name='urcu_memb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' alias='synchronize_rcu_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_unregister_rculfhash_atfork_memb' is-defined='yes'/>
+    <!-- urcu_memb_unregister_thread -->
+    <elf-symbol name='urcu_memb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' alias='rcu_unregister_thread_memb' is-defined='yes'/>
+    <!-- urcu_register_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_register_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_register_rculfhash_atfork' is-defined='yes'/>
+    <!-- urcu_unregister_rculfhash_atfork_memb -->
+    <elf-symbol name='urcu_unregister_rculfhash_atfork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_memb -->
+    <elf-symbol name='rcu_flavor_memb' size='112' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_flavor' is-defined='yes'/>
+    <!-- rcu_gp_memb -->
+    <elf-symbol name='rcu_gp_memb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_has_sys_membarrier_memb -->
+    <elf-symbol name='rcu_has_sys_membarrier_memb' size='4' type='object-type' binding='global-binding' visibility='default-visibility' alias='urcu_memb_has_sys_membarrier' is-defined='yes'/>
+    <!-- rcu_reader_memb -->
+    <elf-symbol name='rcu_reader_memb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_flavor -->
+    <elf-symbol name='urcu_memb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_gp -->
+    <elf-symbol name='urcu_memb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' alias='rcu_gp_memb' is-defined='yes'/>
+    <!-- urcu_memb_has_sys_membarrier -->
+    <elf-symbol name='urcu_memb_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_reader -->
+    <elf-symbol name='urcu_memb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' alias='rcu_reader_memb' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- int urcu_memb_has_sys_membarrier -->
+    <var-decl name='urcu_memb_has_sys_membarrier' type-id='type-id-5' mangled-name='rcu_has_sys_membarrier_memb' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='72' column='1' elf-symbol-id='rcu_has_sys_membarrier_memb'/>
+    <!-- urcu_gp urcu_memb_gp -->
+    <var-decl name='urcu_memb_gp' type-id='type-id-10' mangled-name='urcu_memb_gp' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='83' column='1' elf-symbol-id='urcu_memb_gp'/>
+    <!-- urcu_reader urcu_memb_reader -->
+    <var-decl name='urcu_memb_reader' type-id='type-id-13' mangled-name='urcu_memb_reader' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='85' column='1' elf-symbol-id='urcu_memb_reader'/>
+    <!-- const rcu_flavor_struct urcu_memb_flavor -->
+    <var-decl name='urcu_memb_flavor' type-id='type-id-40' mangled-name='rcu_flavor_memb' visibility='default' filepath='../include/urcu/flavor.h' line='90' column='1' elf-symbol-id='rcu_flavor_memb'/>
+    <!-- void urcu_memb_defer_exit() -->
+    <function-decl name='urcu_memb_defer_exit' mangled-name='urcu_memb_defer_exit' filepath='src/urcu-defer-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_unregister_thread() -->
+    <function-decl name='urcu_memb_defer_unregister_thread' mangled-name='rcu_defer_unregister_thread_memb' filepath='src/urcu-defer-impl.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_defer_register_thread() -->
+    <function-decl name='urcu_memb_defer_register_thread' mangled-name='urcu_memb_defer_register_thread' filepath='src/urcu-defer-impl.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_memb_defer_rcu' mangled-name='defer_rcu_memb' filepath='src/urcu-defer-impl.h' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_memb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='400' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier() -->
+    <function-decl name='urcu_memb_defer_barrier' mangled-name='rcu_defer_barrier_memb' filepath='src/urcu-defer-impl.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier_thread() -->
+    <function-decl name='urcu_memb_defer_barrier_thread' mangled-name='rcu_defer_barrier_thread_memb' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_unregister_rculfhash_atfork' mangled-name='urcu_memb_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1056' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_register_rculfhash_atfork' mangled-name='urcu_register_rculfhash_atfork_memb' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_register_rculfhash_atfork_memb'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1044' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_child' mangled-name='call_rcu_after_fork_child_memb' filepath='src/urcu-call-rcu-impl.h' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_parent' mangled-name='urcu_memb_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_before_fork() -->
+    <function-decl name='urcu_memb_call_rcu_before_fork' mangled-name='urcu_memb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_barrier() -->
+    <function-decl name='urcu_memb_barrier' mangled-name='rcu_barrier_memb' filepath='src/urcu-call-rcu-impl.h' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_memb_free_all_cpu_call_rcu_data' mangled-name='urcu_memb_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_memb_call_rcu_data_free' mangled-name='urcu_memb_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='764' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_memb_call_rcu' mangled-name='urcu_memb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='725' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='726' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_memb_create_all_cpu_call_rcu_data' mangled-name='create_all_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='645' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_thread_call_rcu_data' mangled-name='set_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='630' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_thread_call_rcu_data' mangled-name='get_thread_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_call_rcu_data' mangled-name='get_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_default_call_rcu_data' mangled-name='urcu_memb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_memb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_cpu_call_rcu_data' mangled-name='urcu_memb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='522' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_memb_create_call_rcu_data' mangled-name='urcu_memb_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='498' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='499' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_memb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_memb_get_call_rcu_thread' mangled-name='urcu_memb_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='476' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_memb_get_cpu_call_rcu_data' mangled-name='get_cpu_call_rcu_data_memb' filepath='src/urcu-call-rcu-impl.h' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='452' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_memb_init() -->
+    <function-decl name='urcu_memb_init' mangled-name='rcu_init_memb' filepath='src/urcu.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_thread() -->
+    <function-decl name='urcu_memb_unregister_thread' mangled-name='urcu_memb_unregister_thread' filepath='src/urcu.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_thread() -->
+    <function-decl name='urcu_memb_register_thread' mangled-name='urcu_memb_register_thread' filepath='src/urcu.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_read_ongoing() -->
+    <function-decl name='urcu_memb_read_ongoing' mangled-name='urcu_memb_read_ongoing' filepath='src/urcu.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_read_unlock() -->
+    <function-decl name='urcu_memb_read_unlock' mangled-name='urcu_memb_read_unlock' filepath='src/urcu.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_read_lock() -->
+    <function-decl name='urcu_memb_read_lock' mangled-name='rcu_read_lock_memb' filepath='src/urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_synchronize_rcu() -->
+    <function-decl name='urcu_memb_synchronize_rcu' mangled-name='urcu_memb_synchronize_rcu' filepath='src/urcu.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-bp.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-bp.so.8.xml
new file mode 100644 (file)
index 0000000..39be18b
--- /dev/null
@@ -0,0 +1,899 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-bp.so.8'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.8'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_after_fork_child -->
+    <elf-symbol name='urcu_bp_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_after_fork_parent -->
+    <elf-symbol name='urcu_bp_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_barrier -->
+    <elf-symbol name='urcu_bp_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_before_fork -->
+    <elf-symbol name='urcu_bp_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu -->
+    <elf-symbol name='urcu_bp_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_bp_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_bp_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_before_fork -->
+    <elf-symbol name='urcu_bp_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_call_rcu_data_free -->
+    <elf-symbol name='urcu_bp_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_cmpxchg_pointer_sym -->
+    <elf-symbol name='urcu_bp_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_create_call_rcu_data -->
+    <elf-symbol name='urcu_bp_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_barrier -->
+    <elf-symbol name='urcu_bp_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_barrier_thread -->
+    <elf-symbol name='urcu_bp_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_exit -->
+    <elf-symbol name='urcu_bp_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_rcu -->
+    <elf-symbol name='urcu_bp_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_register_thread -->
+    <elf-symbol name='urcu_bp_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_defer_unregister_thread -->
+    <elf-symbol name='urcu_bp_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_dereference_sym -->
+    <elf-symbol name='urcu_bp_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_call_rcu_thread -->
+    <elf-symbol name='urcu_bp_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_bp_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_read_lock -->
+    <elf-symbol name='urcu_bp_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_read_ongoing -->
+    <elf-symbol name='urcu_bp_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_read_unlock -->
+    <elf-symbol name='urcu_bp_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register -->
+    <elf-symbol name='urcu_bp_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_bp_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_register_thread -->
+    <elf-symbol name='urcu_bp_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_bp_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_set_pointer_sym -->
+    <elf-symbol name='urcu_bp_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_bp_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_synchronize_rcu -->
+    <elf-symbol name='urcu_bp_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_bp_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_xchg_pointer_sym -->
+    <elf-symbol name='urcu_bp_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_flavor -->
+    <elf-symbol name='urcu_bp_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_gp -->
+    <elf-symbol name='urcu_bp_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_has_sys_membarrier -->
+    <elf-symbol name='urcu_bp_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_reader -->
+    <elf-symbol name='urcu_bp_reader' size='8' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-bp.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_bp_gp -->
+    <class-decl name='urcu_bp_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='77' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_bp_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='85' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_bp_reader -->
+    <class-decl name='urcu_bp_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='90' column='1' id='type-id-11'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_bp_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_bp_reader::node -->
+        <var-decl name='node' type-id='type-id-12' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_bp_reader::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- int urcu_bp_reader::alloc -->
+        <var-decl name='alloc' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='96' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-14' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-13'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-17' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-16' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-21'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-22' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-23' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-25'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-26' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-27' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-29' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-30' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-12' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-22' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-32' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-33' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-32'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-33'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-36' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-35'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-37' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-38' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-31'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-38'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-14'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-24'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-17'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-43'/>
+    <!-- urcu_bp_reader* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-44'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-16'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-23'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-18'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-19'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-26'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-27'/>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-51'/>
+    <!-- int urcu_bp_has_sys_membarrier -->
+    <var-decl name='urcu_bp_has_sys_membarrier' type-id='type-id-5' mangled-name='urcu_bp_has_sys_membarrier' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='109' column='1' elf-symbol-id='urcu_bp_has_sys_membarrier'/>
+    <!-- urcu_bp_gp urcu_bp_gp -->
+    <var-decl name='urcu_bp_gp' type-id='type-id-10' mangled-name='urcu_bp_gp' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='88' column='1' elf-symbol-id='urcu_bp_gp'/>
+    <!-- urcu_bp_reader* urcu_bp_reader -->
+    <var-decl name='urcu_bp_reader' type-id='type-id-44' mangled-name='urcu_bp_reader' visibility='default' filepath='../include/urcu/static/urcu-bp.h' line='104' column='1' elf-symbol-id='urcu_bp_reader'/>
+    <!-- const rcu_flavor_struct urcu_bp_flavor -->
+    <var-decl name='urcu_bp_flavor' type-id='type-id-40' mangled-name='urcu_bp_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='81' column='1' elf-symbol-id='urcu_bp_flavor'/>
+    <!-- void urcu_bp_defer_exit() -->
+    <function-decl name='urcu_bp_defer_exit' mangled-name='urcu_bp_defer_exit' filepath='src/urcu-defer-impl.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_unregister_thread() -->
+    <function-decl name='urcu_bp_defer_unregister_thread' mangled-name='urcu_bp_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_defer_register_thread() -->
+    <function-decl name='urcu_bp_defer_register_thread' mangled-name='urcu_bp_defer_register_thread' filepath='src/urcu-defer-impl.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_bp_defer_rcu' mangled-name='urcu_bp_defer_rcu' filepath='src/urcu-defer-impl.h' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26' name='fct' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_barrier() -->
+    <function-decl name='urcu_bp_defer_barrier' mangled-name='urcu_bp_defer_barrier' filepath='src/urcu-defer-impl.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_defer_barrier_thread() -->
+    <function-decl name='urcu_bp_defer_barrier_thread' mangled-name='urcu_bp_defer_barrier_thread' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_defer_barrier_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_bp_unregister_rculfhash_atfork' mangled-name='urcu_bp_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_bp_register_rculfhash_atfork' mangled-name='urcu_bp_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_bp_call_rcu_after_fork_child' mangled-name='urcu_bp_call_rcu_after_fork_child' filepath='src/urcu-call-rcu-impl.h' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_bp_call_rcu_after_fork_parent' mangled-name='urcu_bp_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_before_fork() -->
+    <function-decl name='urcu_bp_call_rcu_before_fork' mangled-name='urcu_bp_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_barrier() -->
+    <function-decl name='urcu_bp_barrier' mangled-name='urcu_bp_barrier' filepath='src/urcu-call-rcu-impl.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_bp_free_all_cpu_call_rcu_data' mangled-name='urcu_bp_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_bp_call_rcu_data_free' mangled-name='urcu_bp_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='742' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_bp_call_rcu' mangled-name='urcu_bp_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='704' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23' name='func' filepath='src/urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_bp_create_all_cpu_call_rcu_data' mangled-name='urcu_bp_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='626' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_bp_set_thread_call_rcu_data' mangled-name='urcu_bp_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='613' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_thread_call_rcu_data' mangled-name='urcu_bp_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_call_rcu_data' mangled-name='urcu_bp_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_default_call_rcu_data() -->
+    <function-decl name='urcu_bp_get_default_call_rcu_data' mangled-name='urcu_bp_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_bp_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_bp_set_cpu_call_rcu_data' mangled-name='urcu_bp_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_bp_create_call_rcu_data' mangled-name='urcu_bp_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='489' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_bp_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_bp_get_call_rcu_thread' mangled-name='urcu_bp_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='471' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-13'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_bp_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_bp_get_cpu_call_rcu_data' mangled-name='urcu_bp_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='449' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void* urcu_bp_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='urcu_bp_cmpxchg_pointer_sym' mangled-name='urcu_bp_cmpxchg_pointer_sym' filepath='src/urcu-bp.c' line='762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='762' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-bp.c' line='762' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-bp.c' line='762' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='urcu_bp_xchg_pointer_sym' mangled-name='urcu_bp_xchg_pointer_sym' filepath='src/urcu-bp.c' line='756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='756' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='756' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_set_pointer_sym(void**, void*) -->
+    <function-decl name='urcu_bp_set_pointer_sym' mangled-name='urcu_bp_set_pointer_sym' filepath='src/urcu-bp.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-bp.c' line='749' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-bp.c' line='749' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* urcu_bp_dereference_sym(void*) -->
+    <function-decl name='urcu_bp_dereference_sym' mangled-name='urcu_bp_dereference_sym' filepath='src/urcu-bp.c' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-bp.c' line='744' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void urcu_bp_after_fork_child() -->
+    <function-decl name='urcu_bp_after_fork_child' mangled-name='urcu_bp_after_fork_child' filepath='src/urcu-bp.c' line='731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_after_fork_parent() -->
+    <function-decl name='urcu_bp_after_fork_parent' mangled-name='urcu_bp_after_fork_parent' filepath='src/urcu-bp.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_before_fork() -->
+    <function-decl name='urcu_bp_before_fork' mangled-name='urcu_bp_before_fork' filepath='src/urcu-bp.c' line='682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register_thread() -->
+    <function-decl name='urcu_bp_register_thread' mangled-name='urcu_bp_register_thread' filepath='src/urcu-bp.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_register() -->
+    <function-decl name='urcu_bp_register' mangled-name='urcu_bp_register' filepath='src/urcu-bp.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_register'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_bp_read_ongoing() -->
+    <function-decl name='urcu_bp_read_ongoing' mangled-name='urcu_bp_read_ongoing' filepath='src/urcu-bp.c' line='365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_bp_read_unlock() -->
+    <function-decl name='urcu_bp_read_unlock' mangled-name='urcu_bp_read_unlock' filepath='src/urcu-bp.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_read_lock() -->
+    <function-decl name='urcu_bp_read_lock' mangled-name='urcu_bp_read_lock' filepath='src/urcu-bp.c' line='355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_bp_synchronize_rcu() -->
+    <function-decl name='urcu_bp_synchronize_rcu' mangled-name='urcu_bp_synchronize_rcu' filepath='src/urcu-bp.c' line='272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_bp_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-23'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-26'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-50'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-51' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-27' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-27'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-52'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-53'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-54'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-55'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-56'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-57'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-58' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-59'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-58'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-52' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-61' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-61'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-62' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-63'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-64'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-65'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-63' const='yes' id='type-id-66'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-68'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-32' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-59' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-67' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-68' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-31' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-cds.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-cds.so.8.xml
new file mode 100644 (file)
index 0000000..fa7349c
--- /dev/null
@@ -0,0 +1,1476 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-cds.so.8'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.8'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_lfs_init -->
+    <elf-symbol name='__cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop -->
+    <elf-symbol name='__cds_lfs_pop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop_all -->
+    <elf-symbol name='__cds_lfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- _cds_lfht_new -->
+    <elf-symbol name='_cds_lfht_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add -->
+    <elf-symbol name='cds_lfht_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_replace -->
+    <elf-symbol name='cds_lfht_add_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_unique -->
+    <elf-symbol name='cds_lfht_add_unique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_count_nodes -->
+    <elf-symbol name='cds_lfht_count_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_del -->
+    <elf-symbol name='cds_lfht_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_destroy -->
+    <elf-symbol name='cds_lfht_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_first -->
+    <elf-symbol name='cds_lfht_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_fls_ulong -->
+    <elf-symbol name='cds_lfht_fls_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_get_count_order_ulong -->
+    <elf-symbol name='cds_lfht_get_count_order_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_is_node_deleted -->
+    <elf-symbol name='cds_lfht_is_node_deleted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_lookup -->
+    <elf-symbol name='cds_lfht_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next -->
+    <elf-symbol name='cds_lfht_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next_duplicate -->
+    <elf-symbol name='cds_lfht_next_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_replace -->
+    <elf-symbol name='cds_lfht_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_resize -->
+    <elf-symbol name='cds_lfht_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_dequeue_rcu -->
+    <elf-symbol name='cds_lfq_dequeue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_destroy_rcu -->
+    <elf-symbol name='cds_lfq_destroy_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_enqueue_rcu -->
+    <elf-symbol name='cds_lfq_enqueue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_init_rcu -->
+    <elf-symbol name='cds_lfq_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_node_init_rcu -->
+    <elf-symbol name='cds_lfq_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_destroy -->
+    <elf-symbol name='cds_lfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_empty -->
+    <elf-symbol name='cds_lfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init -->
+    <elf-symbol name='cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init_rcu -->
+    <elf-symbol name='cds_lfs_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init -->
+    <elf-symbol name='cds_lfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init_rcu -->
+    <elf-symbol name='cds_lfs_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_all_blocking -->
+    <elf-symbol name='cds_lfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_blocking -->
+    <elf-symbol name='cds_lfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_lock -->
+    <elf-symbol name='cds_lfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_rcu -->
+    <elf-symbol name='cds_lfs_pop_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_unlock -->
+    <elf-symbol name='cds_lfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push -->
+    <elf-symbol name='cds_lfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push_rcu -->
+    <elf-symbol name='cds_lfs_push_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create -->
+    <elf-symbol name='urcu_workqueue_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_completion -->
+    <elf-symbol name='urcu_workqueue_create_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_create_worker -->
+    <elf-symbol name='urcu_workqueue_create_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy -->
+    <elf-symbol name='urcu_workqueue_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_destroy_completion -->
+    <elf-symbol name='urcu_workqueue_destroy_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_flush_queued_work -->
+    <elf-symbol name='urcu_workqueue_flush_queued_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_pause_worker -->
+    <elf-symbol name='urcu_workqueue_pause_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_completion -->
+    <elf-symbol name='urcu_workqueue_queue_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_queue_work -->
+    <elf-symbol name='urcu_workqueue_queue_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_resume_worker -->
+    <elf-symbol name='urcu_workqueue_resume_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_workqueue_wait_completion -->
+    <elf-symbol name='urcu_workqueue_wait_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_chunk -->
+    <elf-symbol name='cds_lfht_mm_chunk' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_mmap -->
+    <elf-symbol name='cds_lfht_mm_mmap' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_order -->
+    <elf-symbol name='cds_lfht_mm_order' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='rculfqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-2'/>
+    <!-- struct cds_lfq_node_rcu -->
+    <class-decl name='cds_lfq_node_rcu' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='35' column='1' id='type-id-3'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int cds_lfq_node_rcu::dummy -->
+        <var-decl name='dummy' type-id='type-id-1' visibility='default' filepath='../include/urcu/rculfqueue.h' line='37' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfq_queue_rcu -->
+    <class-decl name='cds_lfq_queue_rcu' size-in-bits='192' is-struct='yes' visibility='default' filepath='../include/urcu/rculfqueue.h' line='40' column='1' id='type-id-5'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::head -->
+        <var-decl name='head' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::tail -->
+        <var-decl name='tail' type-id='type-id-4' visibility='default' filepath='../include/urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* cds_lfq_queue_rcu::queue_call_rcu -->
+        <var-decl name='queue_call_rcu' type-id='type-id-6' visibility='default' filepath='../include/urcu/rculfqueue.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-7'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-9' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-8'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfq_node_rcu* -->
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-4'/>
+    <!-- cds_lfq_queue_rcu* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-10'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-12'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-9'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-6'/>
+    <!-- cds_lfq_node_rcu* cds_lfq_dequeue_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_dequeue_rcu' mangled-name='cds_lfq_dequeue_rcu' filepath='src/rculfqueue.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_dequeue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='56' column='1'/>
+      <!-- cds_lfq_node_rcu* -->
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <!-- void cds_lfq_enqueue_rcu(cds_lfq_queue_rcu*, cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_enqueue_rcu' mangled-name='cds_lfq_enqueue_rcu' filepath='src/rculfqueue.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_enqueue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfq_destroy_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_destroy_rcu' mangled-name='cds_lfq_destroy_rcu' filepath='src/rculfqueue.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_destroy_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='45' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfq_init_rcu(cds_lfq_queue_rcu*, void (rcu_head*, void (rcu_head*)*)*) -->
+    <function-decl name='cds_lfq_init_rcu' mangled-name='cds_lfq_init_rcu' filepath='src/rculfqueue.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_init_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='src/rculfqueue.c' line='38' column='1'/>
+      <!-- parameter of type 'void (rcu_head*, void (rcu_head*)*)*' -->
+      <parameter type-id='type-id-6' name='queue_call_rcu' filepath='src/rculfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfq_node_init_rcu(cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_node_init_rcu' mangled-name='cds_lfq_node_init_rcu' filepath='src/rculfqueue.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_node_init_rcu'>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='src/rculfqueue.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-13'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-14'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-9'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_lfs_node_rcu -->
+    <class-decl name='cds_lfs_node_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='37' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack_rcu -->
+    <class-decl name='cds_lfs_stack_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/rculfstack.h' line='41' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_stack_rcu::head -->
+        <var-decl name='head' type-id='type-id-16' visibility='default' filepath='../include/urcu/rculfstack.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfs_node_rcu* -->
+    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_lfs_stack_rcu* -->
+    <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-18'/>
+    <!-- cds_lfs_node_rcu* cds_lfs_pop_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_pop_rcu' mangled-name='cds_lfs_pop_rcu' filepath='src/rculfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='53' column='1'/>
+      <!-- cds_lfs_node_rcu* -->
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <!-- int cds_lfs_push_rcu(cds_lfs_stack_rcu*, cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_push_rcu' mangled-name='cds_lfs_push_rcu' filepath='src/rculfstack.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='47' column='1'/>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='48' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfs_init_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_init_rcu' mangled-name='cds_lfs_init_rcu' filepath='src/rculfstack.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='src/rculfstack.c' line='42' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init_rcu(cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_node_init_rcu' mangled-name='cds_lfs_node_init_rcu' filepath='src/rculfstack.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init_rcu'>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='src/rculfstack.c' line='37' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='lfstack.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-19'/>
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-20'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='320' id='type-id-21'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-22' id='type-id-23'/>
+
+    </array-type-def>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-24'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-25'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-26'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-22'/>
+    <!-- struct cds_lfs_head -->
+    <class-decl name='cds_lfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='69' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node cds_lfs_head::node -->
+        <var-decl name='node' type-id='type-id-28' visibility='default' filepath='../include/urcu/lfstack.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_node -->
+    <class-decl name='cds_lfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='59' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node* cds_lfs_node::next -->
+        <var-decl name='next' type-id='type-id-29' visibility='default' filepath='../include/urcu/lfstack.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_lfs_stack_ptr_t -->
+    <typedef-decl name='cds_lfs_stack_ptr_t' type-id='type-id-30' filepath='../include/urcu/lfstack.h' line='90' column='1' id='type-id-31'/>
+    <!-- union {__cds_lfs_stack* _s; cds_lfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='87' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __cds_lfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-32' visibility='default' filepath='../include/urcu/lfstack.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfs_stack* s -->
+        <var-decl name='s' type-id='type-id-33' visibility='default' filepath='../include/urcu/lfstack.h' line='89' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_lfs_stack -->
+    <class-decl name='__cds_lfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='73' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* __cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack -->
+    <class-decl name='cds_lfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/lfstack.h' line='77' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='../include/urcu/lfstack.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_lfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/lfstack.h' line='79' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__1 pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-38' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-37'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-39' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-39'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-40' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-41' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-40'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-41'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-32'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-42'/>
+    <!-- cds_lfs_head* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_lfs_node* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
+    <!-- cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-33'/>
+    <!-- cds_lfs_head* __cds_lfs_pop_all(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop_all' mangled-name='__cds_lfs_pop_all' filepath='src/lfstack.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop_all'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='88' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* __cds_lfs_pop(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop' mangled-name='__cds_lfs_pop' filepath='src/lfstack.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='83' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_unlock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_unlock' mangled-name='cds_lfs_pop_unlock' filepath='src/lfstack.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_unlock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='78' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_lock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_lock' mangled-name='cds_lfs_pop_lock' filepath='src/lfstack.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_lock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='73' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfs_head* cds_lfs_pop_all_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_all_blocking' mangled-name='cds_lfs_pop_all_blocking' filepath='src/lfstack.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='68' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* cds_lfs_pop_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_blocking' mangled-name='cds_lfs_pop_blocking' filepath='src/lfstack.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='63' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- bool cds_lfs_push(cds_lfs_stack_ptr_t, cds_lfs_node*) -->
+    <function-decl name='cds_lfs_push' mangled-name='cds_lfs_push' filepath='src/lfstack.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='58' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- bool cds_lfs_empty(cds_lfs_stack_ptr_t) -->
+    <function-decl name='cds_lfs_empty' mangled-name='cds_lfs_empty' filepath='src/lfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_empty'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='src/lfstack.c' line='53' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- void __cds_lfs_init(__cds_lfs_stack*) -->
+    <function-decl name='__cds_lfs_init' mangled-name='__cds_lfs_init' filepath='src/lfstack.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_init'>
+      <!-- parameter of type '__cds_lfs_stack*' -->
+      <parameter type-id='type-id-32' name='s' filepath='src/lfstack.c' line='48' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_destroy(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_destroy' mangled-name='cds_lfs_destroy' filepath='src/lfstack.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_destroy'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='43' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_init(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_init' mangled-name='cds_lfs_init' filepath='src/lfstack.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='src/lfstack.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init(cds_lfs_node*) -->
+    <function-decl name='cds_lfs_node_init' mangled-name='cds_lfs_node_init' filepath='src/lfstack.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init'>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='src/lfstack.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='workqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct urcu_workqueue -->
+    <class-decl name='urcu_workqueue' size-in-bits='2048' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='54' column='1' id='type-id-43'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail urcu_workqueue::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-44' visibility='default' filepath='src/workqueue.c' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head urcu_workqueue::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-45' visibility='default' filepath='src/workqueue.c' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int urcu_workqueue::flags -->
+        <var-decl name='flags' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t urcu_workqueue::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int urcu_workqueue::qlen -->
+        <var-decl name='qlen' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t urcu_workqueue::tid -->
+        <var-decl name='tid' type-id='type-id-47' visibility='default' filepath='src/workqueue.c' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int urcu_workqueue::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int urcu_workqueue::loop_count -->
+        <var-decl name='loop_count' type-id='type-id-22' visibility='default' filepath='src/workqueue.c' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void* urcu_workqueue::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='src/workqueue.c' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::grace_period_fct -->
+        <var-decl name='grace_period_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::initialize_worker_fct -->
+        <var-decl name='initialize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::finalize_worker_fct -->
+        <var-decl name='finalize_worker_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_pause_fct -->
+        <var-decl name='worker_before_pause_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_resume_fct -->
+        <var-decl name='worker_after_resume_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_before_wait_fct -->
+        <var-decl name='worker_before_wait_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <!-- void (urcu_workqueue*, void*)* urcu_workqueue::worker_after_wake_up_fct -->
+        <var-decl name='worker_after_wake_up_fct' type-id='type-id-49' visibility='default' filepath='src/workqueue.c' line='76' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-45'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-8' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-50' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-46'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-1' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-50'/>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-22' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-47'/>
+    <!-- struct urcu_workqueue_completion -->
+    <class-decl name='urcu_workqueue_completion' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.c' line='79' column='1' id='type-id-51'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int urcu_workqueue_completion::barrier_count -->
+        <var-decl name='barrier_count' type-id='type-id-1' visibility='default' filepath='src/workqueue.c' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- int32_t urcu_workqueue_completion::futex -->
+        <var-decl name='futex' type-id='type-id-46' visibility='default' filepath='src/workqueue.c' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- urcu_ref urcu_workqueue_completion::ref -->
+        <var-decl name='ref' type-id='type-id-52' visibility='default' filepath='src/workqueue.c' line='82' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_ref -->
+    <class-decl name='urcu_ref' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/ref.h' line='23' column='1' id='type-id-52'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- long int urcu_ref::refcount -->
+        <var-decl name='refcount' type-id='type-id-24' visibility='default' filepath='../include/urcu/ref.h' line='24' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_work -->
+    <class-decl name='urcu_work' size-in-bits='128' is-struct='yes' visibility='default' filepath='src/workqueue.h' line='53' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node urcu_work::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='src/workqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (urcu_work*)* urcu_work::func -->
+        <var-decl name='func' type-id='type-id-54' visibility='default' filepath='src/workqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- urcu_work* -->
+    <pointer-type-def type-id='type-id-53' size-in-bits='64' id='type-id-55'/>
+    <!-- urcu_workqueue* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-56'/>
+    <!-- urcu_workqueue_completion* -->
+    <pointer-type-def type-id='type-id-51' size-in-bits='64' id='type-id-57'/>
+    <!-- void (urcu_work*)* -->
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-54'/>
+    <!-- void (urcu_workqueue*, void*)* -->
+    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-49'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-48'/>
+    <!-- void urcu_workqueue_create_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_create_worker' mangled-name='urcu_workqueue_create_worker' filepath='src/workqueue.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='455' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_resume_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_resume_worker' mangled-name='urcu_workqueue_resume_worker' filepath='src/workqueue.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_resume_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='448' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_pause_worker(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_pause_worker' mangled-name='urcu_workqueue_pause_worker' filepath='src/workqueue.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_pause_worker'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='437' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_flush_queued_work(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_flush_queued_work' mangled-name='urcu_workqueue_flush_queued_work' filepath='src/workqueue.c' line='424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_flush_queued_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='424' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_completion(urcu_workqueue*, urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_queue_completion' mangled-name='urcu_workqueue_queue_completion' filepath='src/workqueue.c' line='407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_completion'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='407' column='1'/>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='408' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_wait_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_wait_completion' mangled-name='urcu_workqueue_wait_completion' filepath='src/workqueue.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_wait_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='394' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy_completion(urcu_workqueue_completion*) -->
+    <function-decl name='urcu_workqueue_destroy_completion' mangled-name='urcu_workqueue_destroy_completion' filepath='src/workqueue.c' line='389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy_completion'>
+      <!-- parameter of type 'urcu_workqueue_completion*' -->
+      <parameter type-id='type-id-57' name='completion' filepath='src/workqueue.c' line='389' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue_completion* urcu_workqueue_create_completion() -->
+    <function-decl name='urcu_workqueue_create_completion' mangled-name='urcu_workqueue_create_completion' filepath='src/workqueue.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create_completion'>
+      <!-- urcu_workqueue_completion* -->
+      <return type-id='type-id-57'/>
+    </function-decl>
+    <!-- void urcu_workqueue_queue_work(urcu_workqueue*, urcu_work*, void (urcu_work*)*) -->
+    <function-decl name='urcu_workqueue_queue_work' mangled-name='urcu_workqueue_queue_work' filepath='src/workqueue.c' line='343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_queue_work'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='343' column='1'/>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55' name='work' filepath='src/workqueue.c' line='344' column='1'/>
+      <!-- parameter of type 'void (urcu_work*)*' -->
+      <parameter type-id='type-id-54' name='func' filepath='src/workqueue.c' line='345' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void urcu_workqueue_destroy(urcu_workqueue*) -->
+    <function-decl name='urcu_workqueue_destroy' mangled-name='urcu_workqueue_destroy' filepath='src/workqueue.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_destroy'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56' name='workqueue' filepath='src/workqueue.c' line='331' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- urcu_workqueue* urcu_workqueue_create(unsigned long int, int, void*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*, void (urcu_workqueue*, void*)*) -->
+    <function-decl name='urcu_workqueue_create' mangled-name='urcu_workqueue_create' filepath='src/workqueue.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_workqueue_create'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='flags' filepath='src/workqueue.c' line='266' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='cpu_affinity' filepath='src/workqueue.c' line='267' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='priv' filepath='src/workqueue.c' line='267' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='grace_period_fct' filepath='src/workqueue.c' line='268' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='initialize_worker_fct' filepath='src/workqueue.c' line='269' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='finalize_worker_fct' filepath='src/workqueue.c' line='270' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_wait_fct' filepath='src/workqueue.c' line='271' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_wake_up_fct' filepath='src/workqueue.c' line='272' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_before_pause_fct' filepath='src/workqueue.c' line='273' column='1'/>
+      <!-- parameter of type 'void (urcu_workqueue*, void*)*' -->
+      <parameter type-id='type-id-49' name='worker_after_resume_fct' filepath='src/workqueue.c' line='274' column='1'/>
+      <!-- urcu_workqueue* -->
+      <return type-id='type-id-56'/>
+    </function-decl>
+    <!-- void (urcu_work*) -->
+    <function-type size-in-bits='64' id='type-id-58'>
+      <!-- parameter of type 'urcu_work*' -->
+      <parameter type-id='type-id-55'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_workqueue*, void*) -->
+    <function-type size-in-bits='64' id='type-id-59'>
+      <!-- parameter of type 'urcu_workqueue*' -->
+      <parameter type-id='type-id-56'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash.c' comp-dir-path='src' language='LANG_C99'>
+
+
+
+    <!-- cds_lfht_node*[64] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='4096' id='type-id-61'>
+      <!-- <anonymous range>[64] -->
+      <subrange length='64' type-id='type-id-22' id='type-id-62'/>
+
+    </array-type-def>
+    <!-- cds_lfht_node*[] -->
+    <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='infinite' id='type-id-63'>
+      <!-- <anonymous range>[] -->
+      <subrange length='infinite' type-id='type-id-22' id='type-id-64'/>
+
+    </array-type-def>
+    <!-- char[56] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='448' id='type-id-65'>
+      <!-- <anonymous range>[56] -->
+      <subrange length='56' type-id='type-id-22' id='type-id-66'/>
+
+    </array-type-def>
+    <!-- struct cds_lfht -->
+    <class-decl name='cds_lfht' size-in-bits='5248' is-struct='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='70' column='1' id='type-id-67'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int cds_lfht::max_nr_buckets -->
+        <var-decl name='max_nr_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- const cds_lfht_mm_type* cds_lfht::mm -->
+        <var-decl name='mm' type-id='type-id-68' visibility='default' filepath='../src/rculfhash-internal.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- const rcu_flavor_struct* cds_lfht::flavor -->
+        <var-decl name='flavor' type-id='type-id-69' visibility='default' filepath='../src/rculfhash-internal.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- long int cds_lfht::count -->
+        <var-decl name='count' type-id='type-id-24' visibility='default' filepath='../src/rculfhash-internal.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- pthread_mutex_t cds_lfht::resize_mutex -->
+        <var-decl name='resize_mutex' type-id='type-id-37' visibility='default' filepath='../src/rculfhash-internal.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- pthread_attr_t* cds_lfht::resize_attr -->
+        <var-decl name='resize_attr' type-id='type-id-70' visibility='default' filepath='../src/rculfhash-internal.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- unsigned int cds_lfht::in_progress_destroy -->
+        <var-decl name='in_progress_destroy' type-id='type-id-26' visibility='default' filepath='../src/rculfhash-internal.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- unsigned long int cds_lfht::resize_target -->
+        <var-decl name='resize_target' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- int cds_lfht::resize_initiated -->
+        <var-decl name='resize_initiated' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='89' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='800'>
+        <!-- int cds_lfht::flags -->
+        <var-decl name='flags' type-id='type-id-1' visibility='default' filepath='../src/rculfhash-internal.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- unsigned long int cds_lfht::min_alloc_buckets_order -->
+        <var-decl name='min_alloc_buckets_order' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- unsigned long int cds_lfht::min_nr_alloc_buckets -->
+        <var-decl name='min_nr_alloc_buckets' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- ht_items_count* cds_lfht::split_count -->
+        <var-decl name='split_count' type-id='type-id-71' visibility='default' filepath='../src/rculfhash-internal.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- unsigned long int cds_lfht::size -->
+        <var-decl name='size' type-id='type-id-22' visibility='default' filepath='../src/rculfhash-internal.h' line='102' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../src/rculfhash-internal.h' line='107' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+        <var-decl name='' type-id='type-id-73' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_mm_type -->
+    <class-decl name='cds_lfht_mm_type' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='120' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht* (unsigned long int, unsigned long int)* cds_lfht_mm_type::alloc_cds_lfht -->
+        <var-decl name='alloc_cds_lfht' type-id='type-id-75' visibility='default' filepath='../include/urcu/rculfhash.h' line='121' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* cds_lfht_mm_type::alloc_bucket_table -->
+        <var-decl name='alloc_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='123' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void ()* cds_lfht_mm_type::free_bucket_table -->
+        <var-decl name='free_bucket_table' type-id='type-id-76' visibility='default' filepath='../include/urcu/rculfhash.h' line='124' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht_mm_type::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-72' visibility='default' filepath='../include/urcu/rculfhash.h' line='125' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_node -->
+    <class-decl name='cds_lfht_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='63' column='1' id='type-id-77'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_node::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int cds_lfht_node::reverse_hash -->
+        <var-decl name='reverse_hash' type-id='type-id-22' visibility='default' filepath='../include/urcu/rculfhash.h' line='65' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-78'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-80' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-6' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-81' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-79' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-82' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-83'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-84' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-48' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef pthread_attr_t pthread_attr_t -->
+    <typedef-decl name='pthread_attr_t' type-id='type-id-85' filepath='/usr/include/bits/pthreadtypes.h' line='62' column='1' id='type-id-86'/>
+    <!-- union pthread_attr_t -->
+    <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='56' column='1' id='type-id-85'>
+      <data-member access='private'>
+        <!-- char pthread_attr_t::__size[56] -->
+        <var-decl name='__size' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int pthread_attr_t::__align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='59' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct ht_items_count -->
+    <class-decl name='ht_items_count' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/rculfhash.c' line='338' column='1' id='type-id-87'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int ht_items_count::add -->
+        <var-decl name='add' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='339' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int ht_items_count::del -->
+        <var-decl name='del' type-id='type-id-22' visibility='default' filepath='src/rculfhash.c' line='339' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='../src/rculfhash-internal.h' line='113' column='1' id='type-id-73'>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_order[64] -->
+        <var-decl name='tbl_order' type-id='type-id-61' visibility='default' filepath='../src/rculfhash-internal.h' line='122' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_chunk[] -->
+        <var-decl name='tbl_chunk' type-id='type-id-63' visibility='default' filepath='../src/rculfhash-internal.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_mmap -->
+        <var-decl name='tbl_mmap' type-id='type-id-60' visibility='default' filepath='../src/rculfhash-internal.h' line='140' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct cds_lfht_iter -->
+    <class-decl name='cds_lfht_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/rculfhash.h' line='69' column='1' id='type-id-88'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_iter::node -->
+        <var-decl name='node' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfht_node* cds_lfht_iter::next -->
+        <var-decl name='next' type-id='type-id-60' visibility='default' filepath='../include/urcu/rculfhash.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef int (cds_lfht_node*, void*)* cds_lfht_match_fct -->
+    <typedef-decl name='cds_lfht_match_fct' type-id='type-id-89' filepath='../include/urcu/rculfhash.h' line='98' column='1' id='type-id-90'/>
+    <!-- cds_lfht* -->
+    <pointer-type-def type-id='type-id-67' size-in-bits='64' id='type-id-91'/>
+    <!-- cds_lfht* (unsigned long int, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-92' size-in-bits='64' id='type-id-75'/>
+    <!-- cds_lfht_iter* -->
+    <pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-93'/>
+    <!-- cds_lfht_node* -->
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-60'/>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-94' size-in-bits='64' id='type-id-72'/>
+    <!-- const cds_lfht_mm_type -->
+    <qualified-type-def type-id='type-id-74' const='yes' id='type-id-95'/>
+    <!-- const cds_lfht_mm_type* -->
+    <pointer-type-def type-id='type-id-95' size-in-bits='64' id='type-id-68'/>
+    <!-- const cds_lfht_node -->
+    <qualified-type-def type-id='type-id-77' const='yes' id='type-id-96'/>
+    <!-- const cds_lfht_node* -->
+    <pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-97'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-78' const='yes' id='type-id-98'/>
+    <!-- const rcu_flavor_struct* -->
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-69'/>
+    <!-- ht_items_count* -->
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-71'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-99' size-in-bits='64' id='type-id-80'/>
+    <!-- int (cds_lfht_node*, void*)* -->
+    <pointer-type-def type-id='type-id-100' size-in-bits='64' id='type-id-89'/>
+    <!-- long int* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-101'/>
+    <!-- pthread_attr_t* -->
+    <pointer-type-def type-id='type-id-86' size-in-bits='64' id='type-id-70'/>
+    <!-- pthread_attr_t** -->
+    <pointer-type-def type-id='type-id-70' size-in-bits='64' id='type-id-102'/>
+    <!-- unsigned long int* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-103'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-104'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-105' size-in-bits='64' id='type-id-79'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-76'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-82'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-108' size-in-bits='64' id='type-id-81'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-109' size-in-bits='64' id='type-id-84'/>
+    <!-- void cds_lfht_resize(cds_lfht*, unsigned long int) -->
+    <function-decl name='cds_lfht_resize' mangled-name='cds_lfht_resize' filepath='src/rculfhash.c' line='2028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_resize'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='2028' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size' filepath='src/rculfhash.c' line='2028' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_count_nodes(cds_lfht*, long int*, unsigned long int*, long int*) -->
+    <function-decl name='cds_lfht_count_nodes' mangled-name='cds_lfht_count_nodes' filepath='src/rculfhash.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_count_nodes'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1906' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-101' name='approx_before' filepath='src/rculfhash.c' line='1907' column='1'/>
+      <!-- parameter of type 'unsigned long int*' -->
+      <parameter type-id='type-id-103' name='count' filepath='src/rculfhash.c' line='1908' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-101' name='approx_after' filepath='src/rculfhash.c' line='1909' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfht_destroy(cds_lfht*, pthread_attr_t**) -->
+    <function-decl name='cds_lfht_destroy' mangled-name='cds_lfht_destroy' filepath='src/rculfhash.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_destroy'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1881' column='1'/>
+      <!-- parameter of type 'pthread_attr_t**' -->
+      <parameter type-id='type-id-102' name='attr' filepath='src/rculfhash.c' line='1881' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_is_node_deleted(const cds_lfht_node*) -->
+    <function-decl name='cds_lfht_is_node_deleted' mangled-name='cds_lfht_is_node_deleted' filepath='src/rculfhash.c' line='1838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_is_node_deleted'>
+      <!-- parameter of type 'const cds_lfht_node*' -->
+      <parameter type-id='type-id-97' name='node' filepath='src/rculfhash.c' line='1838' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_del(cds_lfht*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_del' mangled-name='cds_lfht_del' filepath='src/rculfhash.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_del'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1822' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1822' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_replace(cds_lfht*, cds_lfht_iter*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_replace' mangled-name='cds_lfht_replace' filepath='src/rculfhash.c' line='1801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1801' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='old_iter' filepath='src/rculfhash.c' line='1802' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1803' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1804' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1805' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='new_node' filepath='src/rculfhash.c' line='1806' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_replace(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_replace' mangled-name='cds_lfht_add_replace' filepath='src/rculfhash.c' line='1778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1778' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1779' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1780' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1781' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1782' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_unique(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_unique' mangled-name='cds_lfht_add_unique' filepath='src/rculfhash.c' line='1761' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_unique'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1761' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1762' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1763' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1764' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1765' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-decl>
+    <!-- void cds_lfht_add(cds_lfht*, unsigned long int, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add' mangled-name='cds_lfht_add' filepath='src/rculfhash.c' line='1750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1750' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1750' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60' name='node' filepath='src/rculfhash.c' line='1751' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_first(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_first' mangled-name='cds_lfht_first' filepath='src/rculfhash.c' line='1739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_first'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1739' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1739' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next' mangled-name='cds_lfht_next' filepath='src/rculfhash.c' line='1715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1715' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1716' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next_duplicate(cds_lfht*, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next_duplicate' mangled-name='cds_lfht_next_duplicate' filepath='src/rculfhash.c' line='1680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next_duplicate'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1680' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1681' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1682' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1682' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_lookup(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_lookup' mangled-name='cds_lfht_lookup' filepath='src/rculfhash.c' line='1640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_lookup'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht' filepath='src/rculfhash.c' line='1640' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='src/rculfhash.c' line='1640' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-90' name='match' filepath='src/rculfhash.c' line='1641' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48' name='key' filepath='src/rculfhash.c' line='1641' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-93' name='iter' filepath='src/rculfhash.c' line='1642' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfht* _cds_lfht_new(unsigned long int, unsigned long int, unsigned long int, int, const cds_lfht_mm_type*, const rcu_flavor_struct*, pthread_attr_t*) -->
+    <function-decl name='_cds_lfht_new' mangled-name='_cds_lfht_new' filepath='src/rculfhash.c' line='1581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_cds_lfht_new'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='init_size' filepath='src/rculfhash.c' line='1581' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='min_nr_alloc_buckets' filepath='src/rculfhash.c' line='1582' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='max_nr_buckets' filepath='src/rculfhash.c' line='1583' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='flags' filepath='src/rculfhash.c' line='1584' column='1'/>
+      <!-- parameter of type 'const cds_lfht_mm_type*' -->
+      <parameter type-id='type-id-68' name='mm' filepath='src/rculfhash.c' line='1585' column='1'/>
+      <!-- parameter of type 'const rcu_flavor_struct*' -->
+      <parameter type-id='type-id-69' name='flavor' filepath='src/rculfhash.c' line='1586' column='1'/>
+      <!-- parameter of type 'pthread_attr_t*' -->
+      <parameter type-id='type-id-70' name='attr' filepath='src/rculfhash.c' line='1587' column='1'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-91'/>
+    </function-decl>
+    <!-- int cds_lfht_get_count_order_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_get_count_order_ulong' mangled-name='cds_lfht_get_count_order_ulong' filepath='src/rculfhash.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_get_count_order_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='598' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- unsigned int cds_lfht_fls_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_fls_ulong' mangled-name='cds_lfht_fls_ulong' filepath='src/rculfhash.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_fls_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='src/rculfhash.c' line='572' column='1'/>
+      <!-- unsigned int -->
+      <return type-id='type-id-26'/>
+    </function-decl>
+    <!-- cds_lfht* (unsigned long int, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-92'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-91'/>
+    </function-type>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-94'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-60'/>
+    </function-type>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-99'>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- int (cds_lfht_node*, void*) -->
+    <function-type size-in-bits='64' id='type-id-100'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-60'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-105'>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-106'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-91' name='ht'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-107'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-104'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-108'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-84'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-109'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-48'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-order.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_order -->
+    <var-decl name='cds_lfht_mm_order' type-id='type-id-95' mangled-name='cds_lfht_mm_order' visibility='default' filepath='../include/urcu/rculfhash.h' line='129' column='1' elf-symbol-id='cds_lfht_mm_order'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-chunk.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_chunk -->
+    <var-decl name='cds_lfht_mm_chunk' type-id='type-id-95' mangled-name='cds_lfht_mm_chunk' visibility='default' filepath='../include/urcu/rculfhash.h' line='130' column='1' elf-symbol-id='cds_lfht_mm_chunk'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-mmap.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_mmap -->
+    <var-decl name='cds_lfht_mm_mmap' type-id='type-id-95' mangled-name='cds_lfht_mm_mmap' visibility='default' filepath='../include/urcu/rculfhash.h' line='131' column='1' elf-symbol-id='cds_lfht_mm_mmap'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='384' id='type-id-110'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-22' id='type-id-111'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-112'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-113'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-26' size-in-bits='64' id='type-id-114'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-22' id='type-id-115'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-116' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-117'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-116'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-118' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-110' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-112' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-118'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-119' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-114' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-119'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-113' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-120' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-120'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-121'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-122' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-123' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-122'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-123'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-121' const='yes' id='type-id-124'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-124' size-in-bits='64' id='type-id-125'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-126'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-37' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-117' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-125' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-125' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-126' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-46' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-common.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-common.so.8.xml
new file mode 100644 (file)
index 0000000..4b9f916
--- /dev/null
@@ -0,0 +1,901 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-common.so.8'>
+  <elf-needed>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_blocking -->
+    <elf-symbol name='__cds_wfcq_first_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_nonblocking -->
+    <elf-symbol name='__cds_wfcq_first_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_init -->
+    <elf-symbol name='__cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_blocking -->
+    <elf-symbol name='__cds_wfcq_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_nonblocking -->
+    <elf-symbol name='__cds_wfcq_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_blocking -->
+    <elf-symbol name='__cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_nonblocking -->
+    <elf-symbol name='__cds_wfcq_splice_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_init -->
+    <elf-symbol name='__cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_all -->
+    <elf-symbol name='__cds_wfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_blocking -->
+    <elf-symbol name='__cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_lock -->
+    <elf-symbol name='cds_wfcq_dequeue_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_unlock -->
+    <elf-symbol name='cds_wfcq_dequeue_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_destroy -->
+    <elf-symbol name='cds_wfcq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_empty -->
+    <elf-symbol name='cds_wfcq_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_enqueue -->
+    <elf-symbol name='cds_wfcq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_init -->
+    <elf-symbol name='cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_node_init -->
+    <elf-symbol name='cds_wfcq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_splice_blocking -->
+    <elf-symbol name='cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_dequeue_blocking -->
+    <elf-symbol name='cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_destroy -->
+    <elf-symbol name='cds_wfq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_enqueue -->
+    <elf-symbol name='cds_wfq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_init -->
+    <elf-symbol name='cds_wfq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_node_init -->
+    <elf-symbol name='cds_wfq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_destroy -->
+    <elf-symbol name='cds_wfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_empty -->
+    <elf-symbol name='cds_wfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_first -->
+    <elf-symbol name='cds_wfs_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_init -->
+    <elf-symbol name='cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_blocking -->
+    <elf-symbol name='cds_wfs_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_nonblocking -->
+    <elf-symbol name='cds_wfs_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_node_init -->
+    <elf-symbol name='cds_wfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_all_blocking -->
+    <elf-symbol name='cds_wfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_blocking -->
+    <elf-symbol name='cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_lock -->
+    <elf-symbol name='cds_wfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_unlock -->
+    <elf-symbol name='cds_wfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_push -->
+    <elf-symbol name='cds_wfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='wfqueue.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct cds_wfq_node -->
+    <class-decl name='cds_wfq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='48' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_node::next -->
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='49' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfq_queue -->
+    <class-decl name='cds_wfq_queue' size-in-bits='512' is-struct='yes' visibility='default' filepath='../include/urcu/wfqueue.h' line='52' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_queue::head -->
+        <var-decl name='head' type-id='type-id-11' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfq_node** cds_wfq_queue::tail -->
+        <var-decl name='tail' type-id='type-id-13' visibility='default' filepath='../include/urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- cds_wfq_node cds_wfq_queue::dummy -->
+        <var-decl name='dummy' type-id='type-id-10' visibility='default' filepath='../include/urcu/wfqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- pthread_mutex_t cds_wfq_queue::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-15' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-14'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-15'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-16' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-16'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-17' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-18' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-17'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-18'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-19'/>
+    <!-- cds_wfq_node* -->
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfq_node** -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-13'/>
+    <!-- cds_wfq_queue* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-20'/>
+    <!-- cds_wfq_node* cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_dequeue_blocking' mangled-name='cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='59' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- cds_wfq_node* __cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='__cds_wfq_dequeue_blocking' mangled-name='__cds_wfq_dequeue_blocking' filepath='src/wfqueue.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='54' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- void cds_wfq_enqueue(cds_wfq_queue*, cds_wfq_node*) -->
+    <function-decl name='cds_wfq_enqueue' mangled-name='cds_wfq_enqueue' filepath='src/wfqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_enqueue'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='49' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_destroy(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_destroy' mangled-name='cds_wfq_destroy' filepath='src/wfqueue.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_destroy'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_init(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_init' mangled-name='cds_wfq_init' filepath='src/wfqueue.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_init'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='src/wfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_node_init(cds_wfq_node*) -->
+    <function-decl name='cds_wfq_node_init' mangled-name='cds_wfq_node_init' filepath='src/wfqueue.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_node_init'>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='src/wfqueue.c' line='34' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfcqueue.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-21'/>
+    <!-- unnamed&#45;enum&#45;underlying&#45;type -->
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-22'/>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfcq_head_ptr_t -->
+    <typedef-decl name='cds_wfcq_head_ptr_t' type-id='type-id-25' filepath='../include/urcu/wfcqueue.h' line='86' column='1' id='type-id-26'/>
+    <!-- union {__cds_wfcq_head* _h; cds_wfcq_head* h;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='83' column='1' id='type-id-25'>
+      <data-member access='private'>
+        <!-- __cds_wfcq_head* _h -->
+        <var-decl name='_h' type-id='type-id-27' visibility='default' filepath='../include/urcu/wfcqueue.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfcq_head* h -->
+        <var-decl name='h' type-id='type-id-28' visibility='default' filepath='../include/urcu/wfcqueue.h' line='85' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfcq_head -->
+    <class-decl name='__cds_wfcq_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='68' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node __cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- enum cds_wfcq_ret -->
+    <enum-decl name='cds_wfcq_ret' filepath='../include/urcu/wfcqueue.h' line='48' column='1' id='type-id-32'>
+      <underlying-type type-id='type-id-22'/>
+      <enumerator name='CDS_WFCQ_RET_WOULDBLOCK' value='-1'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_EMPTY' value='0'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_NON_EMPTY' value='1'/>
+      <enumerator name='CDS_WFCQ_RET_SRC_EMPTY' value='2'/>
+    </enum-decl>
+    <!-- __cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-27'/>
+    <!-- cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-28'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-24'/>
+    <!-- cds_wfcq_tail* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-33'/>
+    <!-- int* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-34'/>
+    <!-- cds_wfcq_node* __cds_wfcq_next_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_nonblocking' mangled-name='__cds_wfcq_next_nonblocking' filepath='src/wfcqueue.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='179' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='180' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='181' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_next_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_blocking' mangled-name='__cds_wfcq_next_blocking' filepath='src/wfcqueue.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='171' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='172' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='173' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_nonblocking' mangled-name='__cds_wfcq_first_nonblocking' filepath='src/wfcqueue.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='164' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='165' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_blocking' mangled-name='__cds_wfcq_first_blocking' filepath='src/wfcqueue.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='157' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='158' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_nonblocking' mangled-name='__cds_wfcq_splice_nonblocking' filepath='src/wfcqueue.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='147' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='148' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='149' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='150' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_blocking' mangled-name='__cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='src/wfcqueue.c' line='137' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='138' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='src/wfcqueue.c' line='139' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='140' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_nonblocking' mangled-name='__cds_wfcq_dequeue_with_state_nonblocking' filepath='src/wfcqueue.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='129' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='130' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='131' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_nonblocking' mangled-name='__cds_wfcq_dequeue_nonblocking' filepath='src/wfcqueue.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='122' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='123' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_blocking' mangled-name='__cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='114' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='115' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='116' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_blocking' mangled-name='__cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='107' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='108' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret cds_wfcq_splice_blocking(cds_wfcq_head*, cds_wfcq_tail*, cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_splice_blocking' mangled-name='cds_wfcq_splice_blocking' filepath='src/wfcqueue.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='dest_q_head' filepath='src/wfcqueue.c' line='97' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='src/wfcqueue.c' line='98' column='1'/>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='src_q_head' filepath='src/wfcqueue.c' line='99' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='src/wfcqueue.c' line='100' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head*, cds_wfcq_tail*, int*) -->
+    <function-decl name='cds_wfcq_dequeue_with_state_blocking' mangled-name='cds_wfcq_dequeue_with_state_blocking' filepath='src/wfcqueue.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='89' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='90' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfcqueue.c' line='91' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_blocking(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_blocking' mangled-name='cds_wfcq_dequeue_blocking' filepath='src/wfcqueue.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='82' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='83' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_unlock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_unlock' mangled-name='cds_wfcq_dequeue_unlock' filepath='src/wfcqueue.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_unlock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='75' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='76' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_lock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_lock' mangled-name='cds_wfcq_dequeue_lock' filepath='src/wfcqueue.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_lock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='69' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='70' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- bool cds_wfcq_enqueue(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_enqueue' mangled-name='cds_wfcq_enqueue' filepath='src/wfcqueue.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_enqueue'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='62' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='63' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='64' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- bool cds_wfcq_empty(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_empty' mangled-name='cds_wfcq_empty' filepath='src/wfcqueue.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_empty'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='src/wfcqueue.c' line='55' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='56' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfcq_init(__cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_init' mangled-name='__cds_wfcq_init' filepath='src/wfcqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_init'>
+      <!-- parameter of type '__cds_wfcq_head*' -->
+      <parameter type-id='type-id-27' name='head' filepath='src/wfcqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_destroy(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_destroy' mangled-name='cds_wfcq_destroy' filepath='src/wfcqueue.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_destroy'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='43' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_init(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_init' mangled-name='cds_wfcq_init' filepath='src/wfcqueue.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_init'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='src/wfcqueue.c' line='37' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='src/wfcqueue.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_node_init(cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_node_init' mangled-name='cds_wfcq_node_init' filepath='src/wfcqueue.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_node_init'>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='src/wfcqueue.c' line='32' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfstack.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- struct cds_wfs_head -->
+    <class-decl name='cds_wfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='82' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node cds_wfs_head::node -->
+        <var-decl name='node' type-id='type-id-36' visibility='default' filepath='../include/urcu/wfstack.h' line='83' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_node -->
+    <class-decl name='cds_wfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='72' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node* cds_wfs_node::next -->
+        <var-decl name='next' type-id='type-id-37' visibility='default' filepath='../include/urcu/wfstack.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfs_stack_ptr_t -->
+    <typedef-decl name='cds_wfs_stack_ptr_t' type-id='type-id-38' filepath='../include/urcu/wfstack.h' line='103' column='1' id='type-id-39'/>
+    <!-- union {__cds_wfs_stack* _s; cds_wfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='100' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __cds_wfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-40' visibility='default' filepath='../include/urcu/wfstack.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfs_stack* s -->
+        <var-decl name='s' type-id='type-id-41' visibility='default' filepath='../include/urcu/wfstack.h' line='102' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfs_stack -->
+    <class-decl name='__cds_wfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='86' column='1' id='type-id-42'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* __cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='87' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_stack -->
+    <class-decl name='cds_wfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfstack.h' line='90' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='../include/urcu/wfstack.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='../include/urcu/wfstack.h' line='92' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-40'/>
+    <!-- cds_wfs_head* -->
+    <pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-43'/>
+    <!-- cds_wfs_node* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-41'/>
+    <!-- cds_wfs_head* __cds_wfs_pop_all(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_all' mangled-name='__cds_wfs_pop_all' filepath='src/wfstack.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_all'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='126' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_nonblocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_nonblocking' mangled-name='__cds_wfs_pop_with_state_nonblocking' filepath='src/wfstack.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='120' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='121' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_nonblocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_nonblocking' mangled-name='__cds_wfs_pop_nonblocking' filepath='src/wfstack.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='114' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_blocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_blocking' mangled-name='__cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='108' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='109' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_blocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_blocking' mangled-name='__cds_wfs_pop_blocking' filepath='src/wfstack.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='102' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_unlock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_unlock' mangled-name='cds_wfs_pop_unlock' filepath='src/wfstack.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_unlock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='97' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_lock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_lock' mangled-name='cds_wfs_pop_lock' filepath='src/wfstack.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_lock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='92' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_nonblocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_nonblocking' mangled-name='cds_wfs_next_nonblocking' filepath='src/wfstack.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_nonblocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='87' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_blocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_blocking' mangled-name='cds_wfs_next_blocking' filepath='src/wfstack.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_blocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='82' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_first(cds_wfs_head*) -->
+    <function-decl name='cds_wfs_first' mangled-name='cds_wfs_first' filepath='src/wfstack.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_first'>
+      <!-- parameter of type 'cds_wfs_head*' -->
+      <parameter type-id='type-id-43' name='head' filepath='src/wfstack.c' line='77' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_head* cds_wfs_pop_all_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_all_blocking' mangled-name='cds_wfs_pop_all_blocking' filepath='src/wfstack.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='72' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_with_state_blocking(cds_wfs_stack*, int*) -->
+    <function-decl name='cds_wfs_pop_with_state_blocking' mangled-name='cds_wfs_pop_with_state_blocking' filepath='src/wfstack.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='src/wfstack.c' line='67' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_blocking' mangled-name='cds_wfs_pop_blocking' filepath='src/wfstack.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='61' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- int cds_wfs_push(cds_wfs_stack_ptr_t, cds_wfs_node*) -->
+    <function-decl name='cds_wfs_push' mangled-name='cds_wfs_push' filepath='src/wfstack.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_push'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='56' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- bool cds_wfs_empty(cds_wfs_stack_ptr_t) -->
+    <function-decl name='cds_wfs_empty' mangled-name='cds_wfs_empty' filepath='src/wfstack.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_empty'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='src/wfstack.c' line='51' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfs_init(__cds_wfs_stack*) -->
+    <function-decl name='__cds_wfs_init' mangled-name='__cds_wfs_init' filepath='src/wfstack.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_init'>
+      <!-- parameter of type '__cds_wfs_stack*' -->
+      <parameter type-id='type-id-40' name='s' filepath='src/wfstack.c' line='46' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_destroy(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_destroy' mangled-name='cds_wfs_destroy' filepath='src/wfstack.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_destroy'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='41' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_init(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_init' mangled-name='cds_wfs_init' filepath='src/wfstack.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_init'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='src/wfstack.c' line='36' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_node_init(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_node_init' mangled-name='cds_wfs_node_init' filepath='src/wfstack.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_node_init'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='src/wfstack.c' line='31' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-45'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-46'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-47'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-48'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-49'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-50'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-51' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-52'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-51'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-45' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-54' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-54'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-48' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-56' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-57'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-56'/>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-57' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-14' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-52' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-mb.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-mb.so.8.xml
new file mode 100644 (file)
index 0000000..80eba83
--- /dev/null
@@ -0,0 +1,843 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-mb.so.8'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.8'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_barrier -->
+    <elf-symbol name='urcu_mb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu -->
+    <elf-symbol name='urcu_mb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_mb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_mb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_mb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_call_rcu_data_free -->
+    <elf-symbol name='urcu_mb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_create_call_rcu_data -->
+    <elf-symbol name='urcu_mb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_barrier -->
+    <elf-symbol name='urcu_mb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_barrier_thread -->
+    <elf-symbol name='urcu_mb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_exit -->
+    <elf-symbol name='urcu_mb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_rcu -->
+    <elf-symbol name='urcu_mb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_register_thread -->
+    <elf-symbol name='urcu_mb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_defer_unregister_thread -->
+    <elf-symbol name='urcu_mb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_mb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_mb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_init -->
+    <elf-symbol name='urcu_mb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_lock -->
+    <elf-symbol name='urcu_mb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_ongoing -->
+    <elf-symbol name='urcu_mb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_read_unlock -->
+    <elf-symbol name='urcu_mb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_mb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_register_thread -->
+    <elf-symbol name='urcu_mb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_mb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_mb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_synchronize_rcu -->
+    <elf-symbol name='urcu_mb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_mb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_unregister_thread -->
+    <elf-symbol name='urcu_mb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_flavor -->
+    <elf-symbol name='urcu_mb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_gp -->
+    <elf-symbol name='urcu_mb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_mb_reader -->
+    <elf-symbol name='urcu_mb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_mb_gp -->
+    <var-decl name='urcu_mb_gp' type-id='type-id-10' mangled-name='urcu_mb_gp' visibility='default' filepath='../include/urcu/static/urcu-mb.h' line='60' column='1' elf-symbol-id='urcu_mb_gp'/>
+    <!-- urcu_reader urcu_mb_reader -->
+    <var-decl name='urcu_mb_reader' type-id='type-id-13' mangled-name='urcu_mb_reader' visibility='default' filepath='../include/urcu/static/urcu-mb.h' line='62' column='1' elf-symbol-id='urcu_mb_reader'/>
+    <!-- const rcu_flavor_struct urcu_mb_flavor -->
+    <var-decl name='urcu_mb_flavor' type-id='type-id-40' mangled-name='urcu_mb_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='81' column='1' elf-symbol-id='urcu_mb_flavor'/>
+    <!-- void urcu_mb_defer_exit() -->
+    <function-decl name='urcu_mb_defer_exit' mangled-name='urcu_mb_defer_exit' filepath='src/urcu-defer-impl.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_unregister_thread() -->
+    <function-decl name='urcu_mb_defer_unregister_thread' mangled-name='urcu_mb_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_defer_register_thread() -->
+    <function-decl name='urcu_mb_defer_register_thread' mangled-name='urcu_mb_defer_register_thread' filepath='src/urcu-defer-impl.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_mb_defer_rcu' mangled-name='urcu_mb_defer_rcu' filepath='src/urcu-defer-impl.h' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_barrier() -->
+    <function-decl name='urcu_mb_defer_barrier' mangled-name='urcu_mb_defer_barrier' filepath='src/urcu-defer-impl.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_defer_barrier_thread() -->
+    <function-decl name='urcu_mb_defer_barrier_thread' mangled-name='urcu_mb_defer_barrier_thread' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_defer_barrier_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_mb_unregister_rculfhash_atfork' mangled-name='urcu_mb_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_mb_register_rculfhash_atfork' mangled-name='urcu_mb_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_mb_call_rcu_after_fork_child' mangled-name='urcu_mb_call_rcu_after_fork_child' filepath='src/urcu-call-rcu-impl.h' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_mb_call_rcu_after_fork_parent' mangled-name='urcu_mb_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_before_fork() -->
+    <function-decl name='urcu_mb_call_rcu_before_fork' mangled-name='urcu_mb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_barrier() -->
+    <function-decl name='urcu_mb_barrier' mangled-name='urcu_mb_barrier' filepath='src/urcu-call-rcu-impl.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_mb_free_all_cpu_call_rcu_data' mangled-name='urcu_mb_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_mb_call_rcu_data_free' mangled-name='urcu_mb_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='742' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_mb_call_rcu' mangled-name='urcu_mb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='704' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_mb_create_all_cpu_call_rcu_data' mangled-name='urcu_mb_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='626' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_mb_set_thread_call_rcu_data' mangled-name='urcu_mb_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='613' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_thread_call_rcu_data' mangled-name='urcu_mb_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_call_rcu_data' mangled-name='urcu_mb_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_mb_get_default_call_rcu_data' mangled-name='urcu_mb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_mb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_mb_set_cpu_call_rcu_data' mangled-name='urcu_mb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_mb_create_call_rcu_data' mangled-name='urcu_mb_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='489' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_mb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_mb_get_call_rcu_thread' mangled-name='urcu_mb_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='471' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_mb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_mb_get_cpu_call_rcu_data' mangled-name='urcu_mb_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='449' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_mb_unregister_thread() -->
+    <function-decl name='urcu_mb_unregister_thread' mangled-name='urcu_mb_unregister_thread' filepath='src/urcu.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_register_thread() -->
+    <function-decl name='urcu_mb_register_thread' mangled-name='urcu_mb_register_thread' filepath='src/urcu.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_mb_read_ongoing() -->
+    <function-decl name='urcu_mb_read_ongoing' mangled-name='urcu_mb_read_ongoing' filepath='src/urcu.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_mb_read_unlock() -->
+    <function-decl name='urcu_mb_read_unlock' mangled-name='urcu_mb_read_unlock' filepath='src/urcu.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_read_lock() -->
+    <function-decl name='urcu_mb_read_lock' mangled-name='urcu_mb_read_lock' filepath='src/urcu.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_synchronize_rcu() -->
+    <function-decl name='urcu_mb_synchronize_rcu' mangled-name='urcu_mb_synchronize_rcu' filepath='src/urcu.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_mb_init() -->
+    <function-decl name='urcu_mb_init' mangled-name='urcu_mb_init' filepath='src/urcu.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_mb_init'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-memb.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-memb.so.8.xml
new file mode 100644 (file)
index 0000000..56a91f9
--- /dev/null
@@ -0,0 +1,847 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-memb.so.8'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.8'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_barrier -->
+    <elf-symbol name='urcu_memb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu -->
+    <elf-symbol name='urcu_memb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_memb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_data_free -->
+    <elf-symbol name='urcu_memb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier -->
+    <elf-symbol name='urcu_memb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier_thread -->
+    <elf-symbol name='urcu_memb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_exit -->
+    <elf-symbol name='urcu_memb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_rcu -->
+    <elf-symbol name='urcu_memb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_register_thread -->
+    <elf-symbol name='urcu_memb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_unregister_thread -->
+    <elf-symbol name='urcu_memb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_memb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_init -->
+    <elf-symbol name='urcu_memb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_lock -->
+    <elf-symbol name='urcu_memb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_ongoing -->
+    <elf-symbol name='urcu_memb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_unlock -->
+    <elf-symbol name='urcu_memb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_thread -->
+    <elf-symbol name='urcu_memb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_synchronize_rcu -->
+    <elf-symbol name='urcu_memb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_unregister_thread -->
+    <elf-symbol name='urcu_memb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_flavor -->
+    <elf-symbol name='urcu_memb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_gp -->
+    <elf-symbol name='urcu_memb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_has_sys_membarrier -->
+    <elf-symbol name='urcu_memb_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_reader -->
+    <elf-symbol name='urcu_memb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- int urcu_memb_has_sys_membarrier -->
+    <var-decl name='urcu_memb_has_sys_membarrier' type-id='type-id-5' mangled-name='urcu_memb_has_sys_membarrier' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='72' column='1' elf-symbol-id='urcu_memb_has_sys_membarrier'/>
+    <!-- urcu_gp urcu_memb_gp -->
+    <var-decl name='urcu_memb_gp' type-id='type-id-10' mangled-name='urcu_memb_gp' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='83' column='1' elf-symbol-id='urcu_memb_gp'/>
+    <!-- urcu_reader urcu_memb_reader -->
+    <var-decl name='urcu_memb_reader' type-id='type-id-13' mangled-name='urcu_memb_reader' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='85' column='1' elf-symbol-id='urcu_memb_reader'/>
+    <!-- const rcu_flavor_struct urcu_memb_flavor -->
+    <var-decl name='urcu_memb_flavor' type-id='type-id-40' mangled-name='urcu_memb_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='81' column='1' elf-symbol-id='urcu_memb_flavor'/>
+    <!-- void urcu_memb_defer_exit() -->
+    <function-decl name='urcu_memb_defer_exit' mangled-name='urcu_memb_defer_exit' filepath='src/urcu-defer-impl.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_unregister_thread() -->
+    <function-decl name='urcu_memb_defer_unregister_thread' mangled-name='urcu_memb_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_defer_register_thread() -->
+    <function-decl name='urcu_memb_defer_register_thread' mangled-name='urcu_memb_defer_register_thread' filepath='src/urcu-defer-impl.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_memb_defer_rcu' mangled-name='urcu_memb_defer_rcu' filepath='src/urcu-defer-impl.h' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier() -->
+    <function-decl name='urcu_memb_defer_barrier' mangled-name='urcu_memb_defer_barrier' filepath='src/urcu-defer-impl.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier_thread() -->
+    <function-decl name='urcu_memb_defer_barrier_thread' mangled-name='urcu_memb_defer_barrier_thread' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_barrier_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_unregister_rculfhash_atfork' mangled-name='urcu_memb_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_register_rculfhash_atfork' mangled-name='urcu_memb_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_child' mangled-name='urcu_memb_call_rcu_after_fork_child' filepath='src/urcu-call-rcu-impl.h' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_parent' mangled-name='urcu_memb_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_before_fork() -->
+    <function-decl name='urcu_memb_call_rcu_before_fork' mangled-name='urcu_memb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_barrier() -->
+    <function-decl name='urcu_memb_barrier' mangled-name='urcu_memb_barrier' filepath='src/urcu-call-rcu-impl.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_memb_free_all_cpu_call_rcu_data' mangled-name='urcu_memb_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_memb_call_rcu_data_free' mangled-name='urcu_memb_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='742' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_memb_call_rcu' mangled-name='urcu_memb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='704' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_memb_create_all_cpu_call_rcu_data' mangled-name='urcu_memb_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='626' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_thread_call_rcu_data' mangled-name='urcu_memb_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='613' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_thread_call_rcu_data' mangled-name='urcu_memb_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_call_rcu_data' mangled-name='urcu_memb_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_default_call_rcu_data' mangled-name='urcu_memb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_memb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_cpu_call_rcu_data' mangled-name='urcu_memb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_memb_create_call_rcu_data' mangled-name='urcu_memb_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='489' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_memb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_memb_get_call_rcu_thread' mangled-name='urcu_memb_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='471' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_memb_get_cpu_call_rcu_data' mangled-name='urcu_memb_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='449' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_memb_init() -->
+    <function-decl name='urcu_memb_init' mangled-name='urcu_memb_init' filepath='src/urcu.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_init'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_thread() -->
+    <function-decl name='urcu_memb_unregister_thread' mangled-name='urcu_memb_unregister_thread' filepath='src/urcu.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_thread() -->
+    <function-decl name='urcu_memb_register_thread' mangled-name='urcu_memb_register_thread' filepath='src/urcu.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_read_ongoing() -->
+    <function-decl name='urcu_memb_read_ongoing' mangled-name='urcu_memb_read_ongoing' filepath='src/urcu.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_read_unlock() -->
+    <function-decl name='urcu_memb_read_unlock' mangled-name='urcu_memb_read_unlock' filepath='src/urcu.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_read_lock() -->
+    <function-decl name='urcu_memb_read_lock' mangled-name='urcu_memb_read_lock' filepath='src/urcu.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_synchronize_rcu() -->
+    <function-decl name='urcu_memb_synchronize_rcu' mangled-name='urcu_memb_synchronize_rcu' filepath='src/urcu.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-qsbr.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-qsbr.so.8.xml
new file mode 100644 (file)
index 0000000..7d5e27a
--- /dev/null
@@ -0,0 +1,864 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-qsbr.so.8'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.8'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_barrier -->
+    <elf-symbol name='urcu_qsbr_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu -->
+    <elf-symbol name='urcu_qsbr_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_qsbr_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_qsbr_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_before_fork -->
+    <elf-symbol name='urcu_qsbr_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_call_rcu_data_free -->
+    <elf-symbol name='urcu_qsbr_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_create_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_barrier -->
+    <elf-symbol name='urcu_qsbr_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_barrier_thread -->
+    <elf-symbol name='urcu_qsbr_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_exit -->
+    <elf-symbol name='urcu_qsbr_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_rcu -->
+    <elf-symbol name='urcu_qsbr_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_register_thread -->
+    <elf-symbol name='urcu_qsbr_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_defer_unregister_thread -->
+    <elf-symbol name='urcu_qsbr_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_exit -->
+    <elf-symbol name='urcu_qsbr_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_call_rcu_thread -->
+    <elf-symbol name='urcu_qsbr_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_quiescent_state -->
+    <elf-symbol name='urcu_qsbr_quiescent_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_read_lock -->
+    <elf-symbol name='urcu_qsbr_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_read_ongoing -->
+    <elf-symbol name='urcu_qsbr_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_read_unlock -->
+    <elf-symbol name='urcu_qsbr_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_qsbr_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_register_thread -->
+    <elf-symbol name='urcu_qsbr_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_qsbr_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_synchronize_rcu -->
+    <elf-symbol name='urcu_qsbr_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_thread_offline -->
+    <elf-symbol name='urcu_qsbr_thread_offline' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_thread_online -->
+    <elf-symbol name='urcu_qsbr_thread_online' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_qsbr_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_unregister_thread -->
+    <elf-symbol name='urcu_qsbr_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_flavor -->
+    <elf-symbol name='urcu_qsbr_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_gp -->
+    <elf-symbol name='urcu_qsbr_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_qsbr_reader -->
+    <elf-symbol name='urcu_qsbr_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-qsbr.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_qsbr_reader -->
+    <class-decl name='urcu_qsbr_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='65' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_qsbr_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_qsbr_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- int urcu_qsbr_reader::waiting -->
+        <var-decl name='waiting' type-id='type-id-5' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- pthread_t urcu_qsbr_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_qsbr_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_qsbr_gp -->
+    <var-decl name='urcu_qsbr_gp' type-id='type-id-10' mangled-name='urcu_qsbr_gp' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='63' column='1' elf-symbol-id='urcu_qsbr_gp'/>
+    <!-- urcu_qsbr_reader urcu_qsbr_reader -->
+    <var-decl name='urcu_qsbr_reader' type-id='type-id-13' mangled-name='urcu_qsbr_reader' visibility='default' filepath='../include/urcu/static/urcu-qsbr.h' line='76' column='1' elf-symbol-id='urcu_qsbr_reader'/>
+    <!-- const rcu_flavor_struct urcu_qsbr_flavor -->
+    <var-decl name='urcu_qsbr_flavor' type-id='type-id-40' mangled-name='urcu_qsbr_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='81' column='1' elf-symbol-id='urcu_qsbr_flavor'/>
+    <!-- void urcu_qsbr_defer_exit() -->
+    <function-decl name='urcu_qsbr_defer_exit' mangled-name='urcu_qsbr_defer_exit' filepath='src/urcu-defer-impl.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_unregister_thread() -->
+    <function-decl name='urcu_qsbr_defer_unregister_thread' mangled-name='urcu_qsbr_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_defer_register_thread() -->
+    <function-decl name='urcu_qsbr_defer_register_thread' mangled-name='urcu_qsbr_defer_register_thread' filepath='src/urcu-defer-impl.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_qsbr_defer_rcu' mangled-name='urcu_qsbr_defer_rcu' filepath='src/urcu-defer-impl.h' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_barrier() -->
+    <function-decl name='urcu_qsbr_defer_barrier' mangled-name='urcu_qsbr_defer_barrier' filepath='src/urcu-defer-impl.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_defer_barrier_thread() -->
+    <function-decl name='urcu_qsbr_defer_barrier_thread' mangled-name='urcu_qsbr_defer_barrier_thread' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_defer_barrier_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_qsbr_unregister_rculfhash_atfork' mangled-name='urcu_qsbr_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_qsbr_register_rculfhash_atfork' mangled-name='urcu_qsbr_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_qsbr_call_rcu_after_fork_child' mangled-name='urcu_qsbr_call_rcu_after_fork_child' filepath='src/urcu-call-rcu-impl.h' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_qsbr_call_rcu_after_fork_parent' mangled-name='urcu_qsbr_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_before_fork() -->
+    <function-decl name='urcu_qsbr_call_rcu_before_fork' mangled-name='urcu_qsbr_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_barrier() -->
+    <function-decl name='urcu_qsbr_barrier' mangled-name='urcu_qsbr_barrier' filepath='src/urcu-call-rcu-impl.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_free_all_cpu_call_rcu_data' mangled-name='urcu_qsbr_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_call_rcu_data_free' mangled-name='urcu_qsbr_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='742' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_qsbr_call_rcu' mangled-name='urcu_qsbr_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='704' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_qsbr_create_all_cpu_call_rcu_data' mangled-name='urcu_qsbr_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='626' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_set_thread_call_rcu_data' mangled-name='urcu_qsbr_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='613' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_thread_call_rcu_data' mangled-name='urcu_qsbr_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_call_rcu_data' mangled-name='urcu_qsbr_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_default_call_rcu_data() -->
+    <function-decl name='urcu_qsbr_get_default_call_rcu_data' mangled-name='urcu_qsbr_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_qsbr_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_set_cpu_call_rcu_data' mangled-name='urcu_qsbr_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_qsbr_create_call_rcu_data' mangled-name='urcu_qsbr_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='489' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_qsbr_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_qsbr_get_call_rcu_thread' mangled-name='urcu_qsbr_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='471' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_qsbr_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_qsbr_get_cpu_call_rcu_data' mangled-name='urcu_qsbr_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='449' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_qsbr_exit() -->
+    <function-decl name='urcu_qsbr_exit' mangled-name='urcu_qsbr_exit' filepath='src/urcu-qsbr.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_unregister_thread() -->
+    <function-decl name='urcu_qsbr_unregister_thread' mangled-name='urcu_qsbr_unregister_thread' filepath='src/urcu-qsbr.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_register_thread() -->
+    <function-decl name='urcu_qsbr_register_thread' mangled-name='urcu_qsbr_register_thread' filepath='src/urcu-qsbr.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_thread_online() -->
+    <function-decl name='urcu_qsbr_thread_online' mangled-name='urcu_qsbr_thread_online' filepath='src/urcu-qsbr.c' line='465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_thread_online'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_thread_offline() -->
+    <function-decl name='urcu_qsbr_thread_offline' mangled-name='urcu_qsbr_thread_offline' filepath='src/urcu-qsbr.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_thread_offline'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_quiescent_state() -->
+    <function-decl name='urcu_qsbr_quiescent_state' mangled-name='urcu_qsbr_quiescent_state' filepath='src/urcu-qsbr.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_quiescent_state'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_qsbr_read_ongoing() -->
+    <function-decl name='urcu_qsbr_read_ongoing' mangled-name='urcu_qsbr_read_ongoing' filepath='src/urcu-qsbr.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_qsbr_read_unlock() -->
+    <function-decl name='urcu_qsbr_read_unlock' mangled-name='urcu_qsbr_read_unlock' filepath='src/urcu-qsbr.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_read_lock() -->
+    <function-decl name='urcu_qsbr_read_lock' mangled-name='urcu_qsbr_read_lock' filepath='src/urcu-qsbr.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_qsbr_synchronize_rcu() -->
+    <function-decl name='urcu_qsbr_synchronize_rcu' mangled-name='urcu_qsbr_synchronize_rcu' filepath='src/urcu-qsbr.c' line='347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_qsbr_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-signal.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-signal.so.8.xml
new file mode 100644 (file)
index 0000000..51a70ab
--- /dev/null
@@ -0,0 +1,850 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-signal.so.8'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.8'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_barrier -->
+    <elf-symbol name='urcu_signal_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu -->
+    <elf-symbol name='urcu_signal_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_signal_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_signal_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_before_fork -->
+    <elf-symbol name='urcu_signal_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_call_rcu_data_free -->
+    <elf-symbol name='urcu_signal_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_create_call_rcu_data -->
+    <elf-symbol name='urcu_signal_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_barrier -->
+    <elf-symbol name='urcu_signal_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_barrier_thread -->
+    <elf-symbol name='urcu_signal_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_exit -->
+    <elf-symbol name='urcu_signal_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_rcu -->
+    <elf-symbol name='urcu_signal_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_register_thread -->
+    <elf-symbol name='urcu_signal_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_defer_unregister_thread -->
+    <elf-symbol name='urcu_signal_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_exit -->
+    <elf-symbol name='urcu_signal_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_call_rcu_thread -->
+    <elf-symbol name='urcu_signal_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_signal_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_init -->
+    <elf-symbol name='urcu_signal_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_read_lock -->
+    <elf-symbol name='urcu_signal_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_read_ongoing -->
+    <elf-symbol name='urcu_signal_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_read_unlock -->
+    <elf-symbol name='urcu_signal_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_signal_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_register_thread -->
+    <elf-symbol name='urcu_signal_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_signal_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_signal_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_synchronize_rcu -->
+    <elf-symbol name='urcu_signal_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_signal_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_unregister_thread -->
+    <elf-symbol name='urcu_signal_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_flavor -->
+    <elf-symbol name='urcu_signal_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_gp -->
+    <elf-symbol name='urcu_signal_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_signal_reader -->
+    <elf-symbol name='urcu_signal_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- urcu_gp urcu_signal_gp -->
+    <var-decl name='urcu_signal_gp' type-id='type-id-10' mangled-name='urcu_signal_gp' visibility='default' filepath='../include/urcu/static/urcu-signal.h' line='61' column='1' elf-symbol-id='urcu_signal_gp'/>
+    <!-- urcu_reader urcu_signal_reader -->
+    <var-decl name='urcu_signal_reader' type-id='type-id-13' mangled-name='urcu_signal_reader' visibility='default' filepath='../include/urcu/static/urcu-signal.h' line='63' column='1' elf-symbol-id='urcu_signal_reader'/>
+    <!-- const rcu_flavor_struct urcu_signal_flavor -->
+    <var-decl name='urcu_signal_flavor' type-id='type-id-40' mangled-name='urcu_signal_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='81' column='1' elf-symbol-id='urcu_signal_flavor'/>
+    <!-- void urcu_signal_defer_exit() -->
+    <function-decl name='urcu_signal_defer_exit' mangled-name='urcu_signal_defer_exit' filepath='src/urcu-defer-impl.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_unregister_thread() -->
+    <function-decl name='urcu_signal_defer_unregister_thread' mangled-name='urcu_signal_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_defer_register_thread() -->
+    <function-decl name='urcu_signal_defer_register_thread' mangled-name='urcu_signal_defer_register_thread' filepath='src/urcu-defer-impl.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_signal_defer_rcu' mangled-name='urcu_signal_defer_rcu' filepath='src/urcu-defer-impl.h' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_barrier() -->
+    <function-decl name='urcu_signal_defer_barrier' mangled-name='urcu_signal_defer_barrier' filepath='src/urcu-defer-impl.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_defer_barrier_thread() -->
+    <function-decl name='urcu_signal_defer_barrier_thread' mangled-name='urcu_signal_defer_barrier_thread' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_defer_barrier_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_signal_unregister_rculfhash_atfork' mangled-name='urcu_signal_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_signal_register_rculfhash_atfork' mangled-name='urcu_signal_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_signal_call_rcu_after_fork_child' mangled-name='urcu_signal_call_rcu_after_fork_child' filepath='src/urcu-call-rcu-impl.h' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_signal_call_rcu_after_fork_parent' mangled-name='urcu_signal_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_before_fork() -->
+    <function-decl name='urcu_signal_call_rcu_before_fork' mangled-name='urcu_signal_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_barrier() -->
+    <function-decl name='urcu_signal_barrier' mangled-name='urcu_signal_barrier' filepath='src/urcu-call-rcu-impl.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_signal_free_all_cpu_call_rcu_data' mangled-name='urcu_signal_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_signal_call_rcu_data_free' mangled-name='urcu_signal_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='742' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_signal_call_rcu' mangled-name='urcu_signal_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='704' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_signal_create_all_cpu_call_rcu_data' mangled-name='urcu_signal_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='626' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_signal_set_thread_call_rcu_data' mangled-name='urcu_signal_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='613' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_thread_call_rcu_data' mangled-name='urcu_signal_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_call_rcu_data' mangled-name='urcu_signal_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_default_call_rcu_data() -->
+    <function-decl name='urcu_signal_get_default_call_rcu_data' mangled-name='urcu_signal_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_signal_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_signal_set_cpu_call_rcu_data' mangled-name='urcu_signal_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_signal_create_call_rcu_data' mangled-name='urcu_signal_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='489' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_signal_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_signal_get_call_rcu_thread' mangled-name='urcu_signal_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='471' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_signal_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_signal_get_cpu_call_rcu_data' mangled-name='urcu_signal_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='449' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_signal_exit() -->
+    <function-decl name='urcu_signal_exit' mangled-name='urcu_signal_exit' filepath='src/urcu.c' line='643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_init() -->
+    <function-decl name='urcu_signal_init' mangled-name='urcu_signal_init' filepath='src/urcu.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_init'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_unregister_thread() -->
+    <function-decl name='urcu_signal_unregister_thread' mangled-name='urcu_signal_unregister_thread' filepath='src/urcu.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_register_thread() -->
+    <function-decl name='urcu_signal_register_thread' mangled-name='urcu_signal_register_thread' filepath='src/urcu.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_signal_read_ongoing() -->
+    <function-decl name='urcu_signal_read_ongoing' mangled-name='urcu_signal_read_ongoing' filepath='src/urcu.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_signal_read_unlock() -->
+    <function-decl name='urcu_signal_read_unlock' mangled-name='urcu_signal_read_unlock' filepath='src/urcu.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_read_lock() -->
+    <function-decl name='urcu_signal_read_lock' mangled-name='urcu_signal_read_lock' filepath='src/urcu.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_signal_synchronize_rcu() -->
+    <function-decl name='urcu_signal_synchronize_rcu' mangled-name='urcu_signal_synchronize_rcu' filepath='src/urcu.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_signal_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu.so.8.xml b/extras/abi/0.13/x86_64-pc-linux-gnu/liburcu.so.8.xml
new file mode 100644 (file)
index 0000000..98ff729
--- /dev/null
@@ -0,0 +1,847 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu.so.8'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.8'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_barrier -->
+    <elf-symbol name='urcu_memb_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu -->
+    <elf-symbol name='urcu_memb_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_child -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_after_fork_parent -->
+    <elf-symbol name='urcu_memb_call_rcu_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_before_fork -->
+    <elf-symbol name='urcu_memb_call_rcu_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_call_rcu_data_free -->
+    <elf-symbol name='urcu_memb_call_rcu_data_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_create_call_rcu_data -->
+    <elf-symbol name='urcu_memb_create_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier -->
+    <elf-symbol name='urcu_memb_defer_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_barrier_thread -->
+    <elf-symbol name='urcu_memb_defer_barrier_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_exit -->
+    <elf-symbol name='urcu_memb_defer_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_rcu -->
+    <elf-symbol name='urcu_memb_defer_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_register_thread -->
+    <elf-symbol name='urcu_memb_defer_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_defer_unregister_thread -->
+    <elf-symbol name='urcu_memb_defer_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_free_all_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_call_rcu_thread -->
+    <elf-symbol name='urcu_memb_get_call_rcu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_default_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_default_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_get_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_get_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_init -->
+    <elf-symbol name='urcu_memb_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_lock -->
+    <elf-symbol name='urcu_memb_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_ongoing -->
+    <elf-symbol name='urcu_memb_read_ongoing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_read_unlock -->
+    <elf-symbol name='urcu_memb_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_register_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_register_thread -->
+    <elf-symbol name='urcu_memb_register_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_set_cpu_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_set_thread_call_rcu_data -->
+    <elf-symbol name='urcu_memb_set_thread_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_synchronize_rcu -->
+    <elf-symbol name='urcu_memb_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_unregister_rculfhash_atfork -->
+    <elf-symbol name='urcu_memb_unregister_rculfhash_atfork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_unregister_thread -->
+    <elf-symbol name='urcu_memb_unregister_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_flavor -->
+    <elf-symbol name='urcu_memb_flavor' size='112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_gp -->
+    <elf-symbol name='urcu_memb_gp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_has_sys_membarrier -->
+    <elf-symbol name='urcu_memb_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_memb_reader -->
+    <elf-symbol name='urcu_memb_reader' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='src' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct urcu_gp -->
+    <class-decl name='urcu_gp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='67' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_gp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t urcu_gp::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='77' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct urcu_reader -->
+    <class-decl name='urcu_reader' size-in-bits='2048' is-struct='yes' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='80' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int urcu_reader::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char urcu_reader::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head urcu_reader::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t urcu_reader::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int urcu_reader::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='../include/urcu/static/urcu-common.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/list.h' line='37' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='../include/urcu/list.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='896' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='42' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='../include/urcu/flavor.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='../include/urcu/flavor.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='../include/urcu/flavor.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='../include/urcu/flavor.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::register_rculfhash_atfork -->
+        <var-decl name='register_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- void (urcu_atfork*)* rcu_flavor_struct::unregister_rculfhash_atfork -->
+        <var-decl name='unregister_rculfhash_atfork' type-id='type-id-22' visibility='default' filepath='../include/urcu/flavor.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='../include/urcu/call-rcu.h' line='57' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='../include/urcu/call-rcu.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-25' visibility='default' filepath='../include/urcu/call-rcu.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='59' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct urcu_atfork -->
+    <class-decl name='urcu_atfork' size-in-bits='256' is-struct='yes' visibility='default' filepath='../include/urcu/flavor.h' line='32' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void (void*)* urcu_atfork::before_fork -->
+        <var-decl name='before_fork' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (void*)* urcu_atfork::after_fork_parent -->
+        <var-decl name='after_fork_parent' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (void*)* urcu_atfork::after_fork_child -->
+        <var-decl name='after_fork_child' type-id='type-id-28' visibility='default' filepath='../include/urcu/flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void* urcu_atfork::priv -->
+        <var-decl name='priv' type-id='type-id-29' visibility='default' filepath='../include/urcu/flavor.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='53' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-31' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-32' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='src/urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-26' visibility='default' filepath='../include/urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='../include/urcu/wfcqueue.h' line='72' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-24' visibility='default' filepath='../include/urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-33' visibility='default' filepath='../include/urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-34' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-33'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-34'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-36' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-37' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-36'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-38' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-39'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-26'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-40'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-42'/>
+    <!-- urcu_atfork* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-43'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-25'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-20'/>
+    <!-- void (urcu_atfork*)* -->
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-22'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-48' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-28'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-29'/>
+    <!-- int urcu_memb_has_sys_membarrier -->
+    <var-decl name='urcu_memb_has_sys_membarrier' type-id='type-id-5' mangled-name='urcu_memb_has_sys_membarrier' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='72' column='1' elf-symbol-id='urcu_memb_has_sys_membarrier'/>
+    <!-- urcu_gp urcu_memb_gp -->
+    <var-decl name='urcu_memb_gp' type-id='type-id-10' mangled-name='urcu_memb_gp' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='83' column='1' elf-symbol-id='urcu_memb_gp'/>
+    <!-- urcu_reader urcu_memb_reader -->
+    <var-decl name='urcu_memb_reader' type-id='type-id-13' mangled-name='urcu_memb_reader' visibility='default' filepath='../include/urcu/static/urcu-memb.h' line='85' column='1' elf-symbol-id='urcu_memb_reader'/>
+    <!-- const rcu_flavor_struct urcu_memb_flavor -->
+    <var-decl name='urcu_memb_flavor' type-id='type-id-40' mangled-name='urcu_memb_flavor' visibility='default' filepath='../include/urcu/flavor.h' line='81' column='1' elf-symbol-id='urcu_memb_flavor'/>
+    <!-- void urcu_memb_defer_exit() -->
+    <function-decl name='urcu_memb_defer_exit' mangled-name='urcu_memb_defer_exit' filepath='src/urcu-defer-impl.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_exit'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_unregister_thread() -->
+    <function-decl name='urcu_memb_defer_unregister_thread' mangled-name='urcu_memb_defer_unregister_thread' filepath='src/urcu-defer-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_defer_register_thread() -->
+    <function-decl name='urcu_memb_defer_register_thread' mangled-name='urcu_memb_defer_register_thread' filepath='src/urcu-defer-impl.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_register_thread'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_rcu(void (void*)*, void*) -->
+    <function-decl name='urcu_memb_defer_rcu' mangled-name='urcu_memb_defer_rcu' filepath='src/urcu-defer-impl.h' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_rcu'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28' name='fct' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-defer-impl.h' line='396' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier() -->
+    <function-decl name='urcu_memb_defer_barrier' mangled-name='urcu_memb_defer_barrier' filepath='src/urcu-defer-impl.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_defer_barrier_thread() -->
+    <function-decl name='urcu_memb_defer_barrier_thread' mangled-name='urcu_memb_defer_barrier_thread' filepath='src/urcu-defer-impl.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_defer_barrier_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_unregister_rculfhash_atfork' mangled-name='urcu_memb_unregister_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1012' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_rculfhash_atfork(urcu_atfork*) -->
+    <function-decl name='urcu_memb_register_rculfhash_atfork' mangled-name='urcu_memb_register_rculfhash_atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_rculfhash_atfork'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43' name='atfork' filepath='src/urcu-call-rcu-impl.h' line='1002' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_child() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_child' mangled-name='urcu_memb_call_rcu_after_fork_child' filepath='src/urcu-call-rcu-impl.h' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_after_fork_parent() -->
+    <function-decl name='urcu_memb_call_rcu_after_fork_parent' mangled-name='urcu_memb_call_rcu_after_fork_parent' filepath='src/urcu-call-rcu-impl.h' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_before_fork() -->
+    <function-decl name='urcu_memb_call_rcu_before_fork' mangled-name='urcu_memb_call_rcu_before_fork' filepath='src/urcu-call-rcu-impl.h' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_barrier() -->
+    <function-decl name='urcu_memb_barrier' mangled-name='urcu_memb_barrier' filepath='src/urcu-call-rcu-impl.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_barrier'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_free_all_cpu_call_rcu_data() -->
+    <function-decl name='urcu_memb_free_all_cpu_call_rcu_data' mangled-name='urcu_memb_free_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu_data_free(call_rcu_data*) -->
+    <function-decl name='urcu_memb_call_rcu_data_free' mangled-name='urcu_memb_call_rcu_data_free' filepath='src/urcu-call-rcu-impl.h' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu_data_free'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='742' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_call_rcu(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='urcu_memb_call_rcu' mangled-name='urcu_memb_call_rcu' filepath='src/urcu-call-rcu-impl.h' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_call_rcu'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42' name='head' filepath='src/urcu-call-rcu-impl.h' line='704' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25' name='func' filepath='src/urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_create_all_cpu_call_rcu_data(unsigned long int) -->
+    <function-decl name='urcu_memb_create_all_cpu_call_rcu_data' mangled-name='urcu_memb_create_all_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_all_cpu_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='626' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_set_thread_call_rcu_data(call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_thread_call_rcu_data' mangled-name='urcu_memb_set_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_thread_call_rcu_data'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='613' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_thread_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_thread_call_rcu_data' mangled-name='urcu_memb_get_thread_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_thread_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_call_rcu_data' mangled-name='urcu_memb_get_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_default_call_rcu_data() -->
+    <function-decl name='urcu_memb_get_default_call_rcu_data' mangled-name='urcu_memb_get_default_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_default_call_rcu_data'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- int urcu_memb_set_cpu_call_rcu_data(int, call_rcu_data*) -->
+    <function-decl name='urcu_memb_set_cpu_call_rcu_data' mangled-name='urcu_memb_set_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_set_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='513' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_create_call_rcu_data(unsigned long int, int) -->
+    <function-decl name='urcu_memb_create_call_rcu_data' mangled-name='urcu_memb_create_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_create_call_rcu_data'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='src/urcu-call-rcu-impl.h' line='489' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='src/urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- pthread_t urcu_memb_get_call_rcu_thread(call_rcu_data*) -->
+    <function-decl name='urcu_memb_get_call_rcu_thread' mangled-name='urcu_memb_get_call_rcu_thread' filepath='src/urcu-call-rcu-impl.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_call_rcu_thread'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-39' name='crdp' filepath='src/urcu-call-rcu-impl.h' line='471' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* urcu_memb_get_cpu_call_rcu_data(int) -->
+    <function-decl name='urcu_memb_get_cpu_call_rcu_data' mangled-name='urcu_memb_get_cpu_call_rcu_data' filepath='src/urcu-call-rcu-impl.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_get_cpu_call_rcu_data'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='src/urcu-call-rcu-impl.h' line='449' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-39'/>
+    </function-decl>
+    <!-- void urcu_memb_init() -->
+    <function-decl name='urcu_memb_init' mangled-name='urcu_memb_init' filepath='src/urcu.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_init'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_unregister_thread() -->
+    <function-decl name='urcu_memb_unregister_thread' mangled-name='urcu_memb_unregister_thread' filepath='src/urcu.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_unregister_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_register_thread() -->
+    <function-decl name='urcu_memb_register_thread' mangled-name='urcu_memb_register_thread' filepath='src/urcu.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_register_thread'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int urcu_memb_read_ongoing() -->
+    <function-decl name='urcu_memb_read_ongoing' mangled-name='urcu_memb_read_ongoing' filepath='src/urcu.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_ongoing'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void urcu_memb_read_unlock() -->
+    <function-decl name='urcu_memb_read_unlock' mangled-name='urcu_memb_read_unlock' filepath='src/urcu.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_unlock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_read_lock() -->
+    <function-decl name='urcu_memb_read_lock' mangled-name='urcu_memb_read_lock' filepath='src/urcu.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_read_lock'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void urcu_memb_synchronize_rcu() -->
+    <function-decl name='urcu_memb_synchronize_rcu' mangled-name='urcu_memb_synchronize_rcu' filepath='src/urcu.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='urcu_memb_synchronize_rcu'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-45'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-46'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-42'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-25'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (urcu_atfork*) -->
+    <function-type size-in-bits='64' id='type-id-47'>
+      <!-- parameter of type 'urcu_atfork*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-48'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-28'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-49'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='src' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-50'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='src/urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='old' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='_new' filepath='src/urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='src/urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='src/urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-50' name='p' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='v' filepath='src/urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='src/urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-29' name='p' filepath='src/urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='src' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-51'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-53'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-54'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-55'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-56'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-57' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-58'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-60' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-60'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-62'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-63'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-64'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-65'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-67'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-33' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='src/compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-58' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='src/compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='src/compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='src/compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='src/compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-66' name='timeout' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-67' name='uaddr2' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='src/compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-bp.so.4.xml b/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-bp.so.4.xml
new file mode 100644 (file)
index 0000000..bb66e83
--- /dev/null
@@ -0,0 +1,836 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-bp.so.4'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.4'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_bp -->
+    <elf-symbol name='call_rcu_after_fork_child_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_bp -->
+    <elf-symbol name='call_rcu_after_fork_parent_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_bp -->
+    <elf-symbol name='call_rcu_before_fork_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_bp -->
+    <elf-symbol name='call_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_bp -->
+    <elf-symbol name='call_rcu_data_free_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_bp -->
+    <elf-symbol name='create_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_bp -->
+    <elf-symbol name='defer_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_bp -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_bp -->
+    <elf-symbol name='get_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_bp -->
+    <elf-symbol name='get_call_rcu_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_bp -->
+    <elf-symbol name='get_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_bp -->
+    <elf-symbol name='get_default_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_bp -->
+    <elf-symbol name='get_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_bp -->
+    <elf-symbol name='rcu_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_child -->
+    <elf-symbol name='rcu_bp_after_fork_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_after_fork_parent -->
+    <elf-symbol name='rcu_bp_after_fork_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_before_fork -->
+    <elf-symbol name='rcu_bp_before_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_bp_register -->
+    <elf-symbol name='rcu_bp_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_bp -->
+    <elf-symbol name='rcu_defer_barrier_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_bp -->
+    <elf-symbol name='rcu_defer_barrier_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_bp -->
+    <elf-symbol name='rcu_defer_exit_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_bp -->
+    <elf-symbol name='rcu_defer_register_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_bp -->
+    <elf-symbol name='rcu_defer_unregister_thread_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym_bp -->
+    <elf-symbol name='rcu_dereference_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_bp -->
+    <elf-symbol name='rcu_read_lock_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_bp -->
+    <elf-symbol name='rcu_read_ongoing_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_bp -->
+    <elf-symbol name='rcu_read_unlock_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym_bp -->
+    <elf-symbol name='rcu_set_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym_bp -->
+    <elf-symbol name='rcu_xchg_pointer_sym_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_bp -->
+    <elf-symbol name='set_cpu_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_bp -->
+    <elf-symbol name='set_thread_call_rcu_data_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_bp -->
+    <elf-symbol name='synchronize_rcu_bp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_bp -->
+    <elf-symbol name='rcu_flavor_bp' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_bp -->
+    <elf-symbol name='rcu_gp_bp' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_bp -->
+    <elf-symbol name='rcu_reader_bp' size='8' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- urcu_bp_has_sys_membarrier -->
+    <elf-symbol name='urcu_bp_has_sys_membarrier' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-bp.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_bp -->
+    <class-decl name='rcu_gp_bp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu/static/urcu-bp.h' line='76' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_bp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu-bp.h' line='84' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_reader_bp -->
+    <class-decl name='rcu_reader_bp' size-in-bits='2048' is-struct='yes' visibility='default' filepath='urcu/static/urcu-bp.h' line='89' column='1' id='type-id-11'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_bp::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu-bp.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_bp::node -->
+        <var-decl name='node' type-id='type-id-12' visibility='default' filepath='urcu/static/urcu-bp.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_bp::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='urcu/static/urcu-bp.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- int rcu_reader_bp::alloc -->
+        <var-decl name='alloc' type-id='type-id-5' visibility='default' filepath='urcu/static/urcu-bp.h' line='95' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu/list.h' line='35' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-14' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-14' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-13'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='768' is-struct='yes' visibility='default' filepath='./urcu-flavor.h' line='30' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-17' visibility='default' filepath='./urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-19' visibility='default' filepath='./urcu-flavor.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-16' visibility='default' filepath='./urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu-call-rcu.h' line='59' column='1' id='type-id-20'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-21' visibility='default' filepath='./urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-22' visibility='default' filepath='./urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='59' column='1' id='type-id-21'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu-call-rcu-impl.h' line='54' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-25' visibility='default' filepath='urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-26' visibility='default' filepath='urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-27' visibility='default' filepath='urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-13' visibility='default' filepath='urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-12' visibility='default' filepath='urcu-call-rcu-impl.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='127' column='1' id='type-id-25'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='72' column='1' id='type-id-26'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-21' visibility='default' filepath='urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-28' visibility='default' filepath='urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-29' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-28'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-29'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-30' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-31' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-32' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-31'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-33' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-33' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-34' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-27'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-34'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-33'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-14'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-23'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-36'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-17'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-38'/>
+    <!-- rcu_reader_bp* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-39'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-16'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-22'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-18'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-19'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-45'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-46'/>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-47'/>
+    <!-- int urcu_bp_has_sys_membarrier -->
+    <var-decl name='urcu_bp_has_sys_membarrier' type-id='type-id-5' mangled-name='urcu_bp_has_sys_membarrier' visibility='default' filepath='urcu/static/urcu-bp.h' line='105' column='1' elf-symbol-id='urcu_bp_has_sys_membarrier'/>
+    <!-- rcu_gp_bp rcu_gp_bp -->
+    <var-decl name='rcu_gp_bp' type-id='type-id-10' mangled-name='rcu_gp_bp' visibility='default' filepath='urcu/static/urcu-bp.h' line='87' column='1' elf-symbol-id='rcu_gp_bp'/>
+    <!-- rcu_reader_bp* rcu_reader_bp -->
+    <var-decl name='rcu_reader_bp' type-id='type-id-39' mangled-name='rcu_reader_bp' visibility='default' filepath='urcu/static/urcu-bp.h' line='103' column='1' elf-symbol-id='rcu_reader_bp'/>
+    <!-- const rcu_flavor_struct rcu_flavor_bp -->
+    <var-decl name='rcu_flavor_bp' type-id='type-id-36' mangled-name='rcu_flavor_bp' visibility='default' filepath='./urcu-flavor.h' line='64' column='1' elf-symbol-id='rcu_flavor_bp'/>
+    <!-- void rcu_defer_exit_bp() -->
+    <function-decl name='rcu_defer_exit_bp' mangled-name='rcu_defer_exit_bp' filepath='urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_bp() -->
+    <function-decl name='rcu_defer_unregister_thread_bp' mangled-name='rcu_defer_unregister_thread_bp' filepath='urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_bp() -->
+    <function-decl name='rcu_defer_register_thread_bp' mangled-name='rcu_defer_register_thread_bp' filepath='urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_bp'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_bp(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_bp' mangled-name='defer_rcu_bp' filepath='urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_bp'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-45' name='fct' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_bp() -->
+    <function-decl name='rcu_defer_barrier_bp' mangled-name='rcu_defer_barrier_bp' filepath='urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_bp() -->
+    <function-decl name='rcu_defer_barrier_thread_bp' mangled-name='rcu_defer_barrier_thread_bp' filepath='urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_bp() -->
+    <function-decl name='call_rcu_after_fork_child_bp' mangled-name='call_rcu_after_fork_child_bp' filepath='urcu-call-rcu-impl.h' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_bp() -->
+    <function-decl name='call_rcu_after_fork_parent_bp' mangled-name='call_rcu_after_fork_parent_bp' filepath='urcu-call-rcu-impl.h' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_bp() -->
+    <function-decl name='call_rcu_before_fork_bp' mangled-name='call_rcu_before_fork_bp' filepath='urcu-call-rcu-impl.h' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_bp() -->
+    <function-decl name='rcu_barrier_bp' mangled-name='rcu_barrier_bp' filepath='urcu-call-rcu-impl.h' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_bp() -->
+    <function-decl name='free_all_cpu_call_rcu_data_bp' mangled-name='free_all_cpu_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_bp(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_bp' mangled-name='call_rcu_data_free_bp' filepath='urcu-call-rcu-impl.h' line='743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='743' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_bp(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_bp' mangled-name='call_rcu_bp' filepath='urcu-call-rcu-impl.h' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_bp'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38' name='head' filepath='urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-22' name='func' filepath='urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_bp(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_bp' mangled-name='create_all_cpu_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='627' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_bp(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_bp' mangled-name='set_thread_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='614' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_bp() -->
+    <function-decl name='get_thread_call_rcu_data_bp' mangled-name='get_thread_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_bp() -->
+    <function-decl name='get_call_rcu_data_bp' mangled-name='get_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_bp() -->
+    <function-decl name='get_default_call_rcu_data_bp' mangled-name='get_default_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_bp'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_bp(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_bp' mangled-name='set_cpu_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_bp(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_bp' mangled-name='create_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_bp'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_bp(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_bp' mangled-name='get_call_rcu_thread_bp' filepath='urcu-call-rcu-impl.h' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_bp'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='472' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-13'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_bp(int) -->
+    <function-decl name='get_cpu_call_rcu_data_bp' mangled-name='get_cpu_call_rcu_data_bp' filepath='urcu-call-rcu-impl.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_bp'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='450' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- void* rcu_cmpxchg_pointer_sym_bp(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym_bp' mangled-name='rcu_cmpxchg_pointer_sym_bp' filepath='urcu-bp.c' line='721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-47' name='p' filepath='urcu-bp.c' line='721' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='old' filepath='urcu-bp.c' line='721' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='_new' filepath='urcu-bp.c' line='721' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym_bp(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym_bp' mangled-name='rcu_xchg_pointer_sym_bp' filepath='urcu-bp.c' line='715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-47' name='p' filepath='urcu-bp.c' line='715' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='v' filepath='urcu-bp.c' line='715' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym_bp(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym_bp' mangled-name='rcu_set_pointer_sym_bp' filepath='urcu-bp.c' line='708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym_bp'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-47' name='p' filepath='urcu-bp.c' line='708' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='v' filepath='urcu-bp.c' line='708' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym_bp(void*) -->
+    <function-decl name='rcu_dereference_sym_bp' mangled-name='rcu_dereference_sym_bp' filepath='urcu-bp.c' line='703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym_bp'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-bp.c' line='703' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <!-- void rcu_bp_after_fork_child() -->
+    <function-decl name='rcu_bp_after_fork_child' mangled-name='rcu_bp_after_fork_child' filepath='urcu-bp.c' line='690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_after_fork_child'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_bp_after_fork_parent() -->
+    <function-decl name='rcu_bp_after_fork_parent' mangled-name='rcu_bp_after_fork_parent' filepath='urcu-bp.c' line='655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_after_fork_parent'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_bp_before_fork() -->
+    <function-decl name='rcu_bp_before_fork' mangled-name='rcu_bp_before_fork' filepath='urcu-bp.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_before_fork'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_bp_register() -->
+    <function-decl name='rcu_bp_register' mangled-name='rcu_bp_register' filepath='urcu-bp.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bp_register'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_bp() -->
+    <function-decl name='rcu_read_ongoing_bp' mangled-name='rcu_read_ongoing_bp' filepath='urcu-bp.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_bp'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_bp() -->
+    <function-decl name='rcu_read_unlock_bp' mangled-name='rcu_read_unlock_bp' filepath='urcu-bp.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_bp() -->
+    <function-decl name='rcu_read_lock_bp' mangled-name='rcu_read_lock_bp' filepath='urcu-bp.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_bp() -->
+    <function-decl name='synchronize_rcu_bp' mangled-name='synchronize_rcu_bp' filepath='urcu-bp.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_bp'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-37'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-40'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-42'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-22'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-43'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-44'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-47' name='p' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='old' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='_new' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-47' name='p' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='v' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-47' name='p' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='v' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-46'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-48'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-49'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-50'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-51'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-52'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-53'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-54' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-55'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-54'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-56' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-48' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-50' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-56'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-57' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-52' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-52' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-52' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-57'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-58' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-61' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-60'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-61'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-59' const='yes' id='type-id-62'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-63'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-64'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-28' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-55' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-64' name='uaddr' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-27' name='val' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-63' name='timeout' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-64' name='uaddr2' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-27' name='val3' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-64' name='uaddr' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-27' name='val' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-63' name='timeout' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-64' name='uaddr2' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-27' name='val3' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-cds.so.4.xml b/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-cds.so.4.xml
new file mode 100644 (file)
index 0000000..3e8b63f
--- /dev/null
@@ -0,0 +1,1182 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-cds.so.4'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.4'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_lfs_init -->
+    <elf-symbol name='__cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop -->
+    <elf-symbol name='__cds_lfs_pop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_lfs_pop_all -->
+    <elf-symbol name='__cds_lfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- _cds_lfht_new -->
+    <elf-symbol name='_cds_lfht_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add -->
+    <elf-symbol name='cds_lfht_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_replace -->
+    <elf-symbol name='cds_lfht_add_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_add_unique -->
+    <elf-symbol name='cds_lfht_add_unique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_count_nodes -->
+    <elf-symbol name='cds_lfht_count_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_del -->
+    <elf-symbol name='cds_lfht_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_destroy -->
+    <elf-symbol name='cds_lfht_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_first -->
+    <elf-symbol name='cds_lfht_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_fls_ulong -->
+    <elf-symbol name='cds_lfht_fls_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_get_count_order_u32 -->
+    <elf-symbol name='cds_lfht_get_count_order_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_get_count_order_ulong -->
+    <elf-symbol name='cds_lfht_get_count_order_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_is_node_deleted -->
+    <elf-symbol name='cds_lfht_is_node_deleted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_lookup -->
+    <elf-symbol name='cds_lfht_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next -->
+    <elf-symbol name='cds_lfht_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_next_duplicate -->
+    <elf-symbol name='cds_lfht_next_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_replace -->
+    <elf-symbol name='cds_lfht_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_resize -->
+    <elf-symbol name='cds_lfht_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_dequeue_rcu -->
+    <elf-symbol name='cds_lfq_dequeue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_destroy_rcu -->
+    <elf-symbol name='cds_lfq_destroy_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_enqueue_rcu -->
+    <elf-symbol name='cds_lfq_enqueue_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_init_rcu -->
+    <elf-symbol name='cds_lfq_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfq_node_init_rcu -->
+    <elf-symbol name='cds_lfq_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_destroy -->
+    <elf-symbol name='cds_lfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_empty -->
+    <elf-symbol name='cds_lfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init -->
+    <elf-symbol name='cds_lfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_init_rcu -->
+    <elf-symbol name='cds_lfs_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init -->
+    <elf-symbol name='cds_lfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_node_init_rcu -->
+    <elf-symbol name='cds_lfs_node_init_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_all_blocking -->
+    <elf-symbol name='cds_lfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_blocking -->
+    <elf-symbol name='cds_lfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_lock -->
+    <elf-symbol name='cds_lfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_rcu -->
+    <elf-symbol name='cds_lfs_pop_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_pop_unlock -->
+    <elf-symbol name='cds_lfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push -->
+    <elf-symbol name='cds_lfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfs_push_rcu -->
+    <elf-symbol name='cds_lfs_push_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_chunk -->
+    <elf-symbol name='cds_lfht_mm_chunk' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_mmap -->
+    <elf-symbol name='cds_lfht_mm_mmap' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_lfht_mm_order -->
+    <elf-symbol name='cds_lfht_mm_order' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='rculfqueue.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-2'/>
+    <!-- struct cds_lfq_node_rcu -->
+    <class-decl name='cds_lfq_node_rcu' size-in-bits='128' is-struct='yes' visibility='default' filepath='urcu/rculfqueue.h' line='35' column='1' id='type-id-3'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-4' visibility='default' filepath='urcu/rculfqueue.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int cds_lfq_node_rcu::dummy -->
+        <var-decl name='dummy' type-id='type-id-1' visibility='default' filepath='urcu/rculfqueue.h' line='37' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfq_queue_rcu -->
+    <class-decl name='cds_lfq_queue_rcu' size-in-bits='192' is-struct='yes' visibility='default' filepath='urcu/rculfqueue.h' line='40' column='1' id='type-id-5'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::head -->
+        <var-decl name='head' type-id='type-id-4' visibility='default' filepath='urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfq_node_rcu* cds_lfq_queue_rcu::tail -->
+        <var-decl name='tail' type-id='type-id-4' visibility='default' filepath='urcu/rculfqueue.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* cds_lfq_queue_rcu::queue_call_rcu -->
+        <var-decl name='queue_call_rcu' type-id='type-id-6' visibility='default' filepath='urcu/rculfqueue.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu-call-rcu.h' line='59' column='1' id='type-id-7'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-8' visibility='default' filepath='./urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-9' visibility='default' filepath='./urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='./urcu/wfcqueue.h' line='59' column='1' id='type-id-8'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='./urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfq_node_rcu* -->
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-4'/>
+    <!-- cds_lfq_queue_rcu* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-10'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-12'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-9'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-6'/>
+    <!-- cds_lfq_node_rcu* cds_lfq_dequeue_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_dequeue_rcu' mangled-name='cds_lfq_dequeue_rcu' filepath='rculfqueue.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_dequeue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='rculfqueue.c' line='56' column='1'/>
+      <!-- cds_lfq_node_rcu* -->
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <!-- void cds_lfq_enqueue_rcu(cds_lfq_queue_rcu*, cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_enqueue_rcu' mangled-name='cds_lfq_enqueue_rcu' filepath='rculfqueue.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_enqueue_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='rculfqueue.c' line='50' column='1'/>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='rculfqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfq_destroy_rcu(cds_lfq_queue_rcu*) -->
+    <function-decl name='cds_lfq_destroy_rcu' mangled-name='cds_lfq_destroy_rcu' filepath='rculfqueue.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_destroy_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='rculfqueue.c' line='45' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfq_init_rcu(cds_lfq_queue_rcu*, void (rcu_head*, void (rcu_head*)*)*) -->
+    <function-decl name='cds_lfq_init_rcu' mangled-name='cds_lfq_init_rcu' filepath='rculfqueue.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_init_rcu'>
+      <!-- parameter of type 'cds_lfq_queue_rcu*' -->
+      <parameter type-id='type-id-11' name='q' filepath='rculfqueue.c' line='38' column='1'/>
+      <!-- parameter of type 'void (rcu_head*, void (rcu_head*)*)*' -->
+      <parameter type-id='type-id-6' name='queue_call_rcu' filepath='rculfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfq_node_init_rcu(cds_lfq_node_rcu*) -->
+    <function-decl name='cds_lfq_node_init_rcu' mangled-name='cds_lfq_node_init_rcu' filepath='rculfqueue.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfq_node_init_rcu'>
+      <!-- parameter of type 'cds_lfq_node_rcu*' -->
+      <parameter type-id='type-id-4' name='node' filepath='rculfqueue.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-13'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-14'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-12'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-9'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfstack.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- struct cds_lfs_node_rcu -->
+    <class-decl name='cds_lfs_node_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/rculfstack.h' line='37' column='1' id='type-id-15'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_node_rcu::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='urcu/rculfstack.h' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack_rcu -->
+    <class-decl name='cds_lfs_stack_rcu' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/rculfstack.h' line='41' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node_rcu* cds_lfs_stack_rcu::head -->
+        <var-decl name='head' type-id='type-id-16' visibility='default' filepath='urcu/rculfstack.h' line='42' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- cds_lfs_node_rcu* -->
+    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_lfs_stack_rcu* -->
+    <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-18'/>
+    <!-- cds_lfs_node_rcu* cds_lfs_pop_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_pop_rcu' mangled-name='cds_lfs_pop_rcu' filepath='rculfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='rculfstack.c' line='53' column='1'/>
+      <!-- cds_lfs_node_rcu* -->
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <!-- int cds_lfs_push_rcu(cds_lfs_stack_rcu*, cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_push_rcu' mangled-name='cds_lfs_push_rcu' filepath='rculfstack.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='rculfstack.c' line='47' column='1'/>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='rculfstack.c' line='48' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- void cds_lfs_init_rcu(cds_lfs_stack_rcu*) -->
+    <function-decl name='cds_lfs_init_rcu' mangled-name='cds_lfs_init_rcu' filepath='rculfstack.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init_rcu'>
+      <!-- parameter of type 'cds_lfs_stack_rcu*' -->
+      <parameter type-id='type-id-18' name='s' filepath='rculfstack.c' line='42' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init_rcu(cds_lfs_node_rcu*) -->
+    <function-decl name='cds_lfs_node_init_rcu' mangled-name='cds_lfs_node_init_rcu' filepath='rculfstack.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init_rcu'>
+      <!-- parameter of type 'cds_lfs_node_rcu*' -->
+      <parameter type-id='type-id-16' name='node' filepath='rculfstack.c' line='37' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='lfstack.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-19'/>
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-20'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='320' id='type-id-21'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-22' id='type-id-23'/>
+
+    </array-type-def>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-24'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-25'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-26'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-22'/>
+    <!-- struct cds_lfs_head -->
+    <class-decl name='cds_lfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/lfstack.h' line='69' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node cds_lfs_head::node -->
+        <var-decl name='node' type-id='type-id-28' visibility='default' filepath='urcu/lfstack.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_node -->
+    <class-decl name='cds_lfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/lfstack.h' line='59' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_node* cds_lfs_node::next -->
+        <var-decl name='next' type-id='type-id-29' visibility='default' filepath='urcu/lfstack.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_lfs_stack_ptr_t -->
+    <typedef-decl name='cds_lfs_stack_ptr_t' type-id='type-id-30' filepath='urcu/lfstack.h' line='90' column='1' id='type-id-31'/>
+    <!-- union {__cds_lfs_stack* _s; cds_lfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='urcu/lfstack.h' line='87' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __cds_lfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-32' visibility='default' filepath='urcu/lfstack.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfs_stack* s -->
+        <var-decl name='s' type-id='type-id-33' visibility='default' filepath='urcu/lfstack.h' line='89' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_lfs_stack -->
+    <class-decl name='__cds_lfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/lfstack.h' line='73' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* __cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='urcu/lfstack.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfs_stack -->
+    <class-decl name='cds_lfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/lfstack.h' line='77' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfs_head* cds_lfs_stack::head -->
+        <var-decl name='head' type-id='type-id-35' visibility='default' filepath='urcu/lfstack.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_lfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-37' visibility='default' filepath='urcu/lfstack.h' line='79' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__1 pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-38' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-37'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-39' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-39'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-1' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-25' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-40' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-41' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-40'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-41'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-42' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-32'/>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-42'/>
+    <!-- cds_lfs_head* -->
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_lfs_node* -->
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
+    <!-- cds_lfs_stack* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-33'/>
+    <!-- cds_lfs_head* __cds_lfs_pop_all(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop_all' mangled-name='__cds_lfs_pop_all' filepath='lfstack.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop_all'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='lfstack.c' line='88' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* __cds_lfs_pop(cds_lfs_stack_ptr_t) -->
+    <function-decl name='__cds_lfs_pop' mangled-name='__cds_lfs_pop' filepath='lfstack.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_pop'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='lfstack.c' line='83' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_unlock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_unlock' mangled-name='cds_lfs_pop_unlock' filepath='lfstack.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_unlock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='lfstack.c' line='78' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_pop_lock(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_lock' mangled-name='cds_lfs_pop_lock' filepath='lfstack.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_lock'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='lfstack.c' line='73' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfs_head* cds_lfs_pop_all_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_all_blocking' mangled-name='cds_lfs_pop_all_blocking' filepath='lfstack.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='lfstack.c' line='68' column='1'/>
+      <!-- cds_lfs_head* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- cds_lfs_node* cds_lfs_pop_blocking(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_pop_blocking' mangled-name='cds_lfs_pop_blocking' filepath='lfstack.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_pop_blocking'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='lfstack.c' line='63' column='1'/>
+      <!-- cds_lfs_node* -->
+      <return type-id='type-id-29'/>
+    </function-decl>
+    <!-- bool cds_lfs_push(cds_lfs_stack_ptr_t, cds_lfs_node*) -->
+    <function-decl name='cds_lfs_push' mangled-name='cds_lfs_push' filepath='lfstack.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_push'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='lfstack.c' line='58' column='1'/>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='lfstack.c' line='58' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- bool cds_lfs_empty(cds_lfs_stack_ptr_t) -->
+    <function-decl name='cds_lfs_empty' mangled-name='cds_lfs_empty' filepath='lfstack.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_empty'>
+      <!-- parameter of type 'typedef cds_lfs_stack_ptr_t' -->
+      <parameter type-id='type-id-31' name='s' filepath='lfstack.c' line='53' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <!-- void __cds_lfs_init(__cds_lfs_stack*) -->
+    <function-decl name='__cds_lfs_init' mangled-name='__cds_lfs_init' filepath='lfstack.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_lfs_init'>
+      <!-- parameter of type '__cds_lfs_stack*' -->
+      <parameter type-id='type-id-32' name='s' filepath='lfstack.c' line='48' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_destroy(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_destroy' mangled-name='cds_lfs_destroy' filepath='lfstack.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_destroy'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='lfstack.c' line='43' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_init(cds_lfs_stack*) -->
+    <function-decl name='cds_lfs_init' mangled-name='cds_lfs_init' filepath='lfstack.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_init'>
+      <!-- parameter of type 'cds_lfs_stack*' -->
+      <parameter type-id='type-id-33' name='s' filepath='lfstack.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfs_node_init(cds_lfs_node*) -->
+    <function-decl name='cds_lfs_node_init' mangled-name='cds_lfs_node_init' filepath='lfstack.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfs_node_init'>
+      <!-- parameter of type 'cds_lfs_node*' -->
+      <parameter type-id='type-id-29' name='node' filepath='lfstack.c' line='33' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+
+    <!-- cds_lfht_node*[64] -->
+    <array-type-def dimensions='1' type-id='type-id-43' size-in-bits='4096' id='type-id-44'>
+      <!-- <anonymous range>[64] -->
+      <subrange length='64' type-id='type-id-22' id='type-id-45'/>
+
+    </array-type-def>
+    <!-- cds_lfht_node*[] -->
+    <array-type-def dimensions='1' type-id='type-id-43' size-in-bits='infinite' id='type-id-46'>
+      <!-- <anonymous range>[] -->
+      <subrange length='infinite' type-id='type-id-22' id='type-id-47'/>
+
+    </array-type-def>
+    <!-- char[56] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='448' id='type-id-48'>
+      <!-- <anonymous range>[56] -->
+      <subrange length='56' type-id='type-id-22' id='type-id-49'/>
+
+    </array-type-def>
+    <!-- struct cds_lfht -->
+    <class-decl name='cds_lfht' size-in-bits='5248' is-struct='yes' visibility='default' filepath='./rculfhash-internal.h' line='68' column='1' id='type-id-50'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int cds_lfht::max_nr_buckets -->
+        <var-decl name='max_nr_buckets' type-id='type-id-22' visibility='default' filepath='./rculfhash-internal.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- const cds_lfht_mm_type* cds_lfht::mm -->
+        <var-decl name='mm' type-id='type-id-51' visibility='default' filepath='./rculfhash-internal.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- const rcu_flavor_struct* cds_lfht::flavor -->
+        <var-decl name='flavor' type-id='type-id-52' visibility='default' filepath='./rculfhash-internal.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- long int cds_lfht::count -->
+        <var-decl name='count' type-id='type-id-24' visibility='default' filepath='./rculfhash-internal.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- pthread_mutex_t cds_lfht::resize_mutex -->
+        <var-decl name='resize_mutex' type-id='type-id-37' visibility='default' filepath='./rculfhash-internal.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- pthread_attr_t* cds_lfht::resize_attr -->
+        <var-decl name='resize_attr' type-id='type-id-53' visibility='default' filepath='./rculfhash-internal.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- unsigned int cds_lfht::in_progress_resize -->
+        <var-decl name='in_progress_resize' type-id='type-id-26' visibility='default' filepath='./rculfhash-internal.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='672'>
+        <!-- unsigned int cds_lfht::in_progress_destroy -->
+        <var-decl name='in_progress_destroy' type-id='type-id-26' visibility='default' filepath='./rculfhash-internal.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- unsigned long int cds_lfht::resize_target -->
+        <var-decl name='resize_target' type-id='type-id-22' visibility='default' filepath='./rculfhash-internal.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- int cds_lfht::resize_initiated -->
+        <var-decl name='resize_initiated' type-id='type-id-1' visibility='default' filepath='./rculfhash-internal.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='800'>
+        <!-- int cds_lfht::flags -->
+        <var-decl name='flags' type-id='type-id-1' visibility='default' filepath='./rculfhash-internal.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- unsigned long int cds_lfht::min_alloc_buckets_order -->
+        <var-decl name='min_alloc_buckets_order' type-id='type-id-22' visibility='default' filepath='./rculfhash-internal.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <!-- unsigned long int cds_lfht::min_nr_alloc_buckets -->
+        <var-decl name='min_nr_alloc_buckets' type-id='type-id-22' visibility='default' filepath='./rculfhash-internal.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <!-- ht_items_count* cds_lfht::split_count -->
+        <var-decl name='split_count' type-id='type-id-54' visibility='default' filepath='./rculfhash-internal.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- unsigned long int cds_lfht::size -->
+        <var-decl name='size' type-id='type-id-22' visibility='default' filepath='./rculfhash-internal.h' line='100' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-55' visibility='default' filepath='./rculfhash-internal.h' line='105' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+        <var-decl name='' type-id='type-id-56' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_mm_type -->
+    <class-decl name='cds_lfht_mm_type' size-in-bits='256' is-struct='yes' visibility='default' filepath='./urcu/rculfhash.h' line='105' column='1' id='type-id-57'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht* (unsigned long int, unsigned long int)* cds_lfht_mm_type::alloc_cds_lfht -->
+        <var-decl name='alloc_cds_lfht' type-id='type-id-58' visibility='default' filepath='./urcu/rculfhash.h' line='106' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* cds_lfht_mm_type::alloc_bucket_table -->
+        <var-decl name='alloc_bucket_table' type-id='type-id-59' visibility='default' filepath='./urcu/rculfhash.h' line='108' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- void ()* cds_lfht_mm_type::free_bucket_table -->
+        <var-decl name='free_bucket_table' type-id='type-id-59' visibility='default' filepath='./urcu/rculfhash.h' line='109' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* cds_lfht_mm_type::bucket_at -->
+        <var-decl name='bucket_at' type-id='type-id-55' visibility='default' filepath='./urcu/rculfhash.h' line='110' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_lfht_node -->
+    <class-decl name='cds_lfht_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu/rculfhash.h' line='60' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_node::next -->
+        <var-decl name='next' type-id='type-id-43' visibility='default' filepath='./urcu/rculfhash.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int cds_lfht_node::reverse_hash -->
+        <var-decl name='reverse_hash' type-id='type-id-22' visibility='default' filepath='./urcu/rculfhash.h' line='62' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='768' is-struct='yes' visibility='default' filepath='./urcu-flavor.h' line='30' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-63' visibility='default' filepath='./urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-6' visibility='default' filepath='./urcu-flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-64' visibility='default' filepath='./urcu-flavor.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-62' visibility='default' filepath='./urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef pthread_attr_t pthread_attr_t -->
+    <typedef-decl name='pthread_attr_t' type-id='type-id-65' filepath='/usr/include/bits/pthreadtypes.h' line='62' column='1' id='type-id-66'/>
+    <!-- union pthread_attr_t -->
+    <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='56' column='1' id='type-id-65'>
+      <data-member access='private'>
+        <!-- char pthread_attr_t::__size[56] -->
+        <var-decl name='__size' type-id='type-id-48' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int pthread_attr_t::__align -->
+        <var-decl name='__align' type-id='type-id-24' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='59' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct ht_items_count -->
+    <class-decl name='ht_items_count' size-in-bits='1024' is-struct='yes' visibility='default' filepath='rculfhash.c' line='335' column='1' id='type-id-67'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int ht_items_count::add -->
+        <var-decl name='add' type-id='type-id-22' visibility='default' filepath='rculfhash.c' line='336' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- unsigned long int ht_items_count::del -->
+        <var-decl name='del' type-id='type-id-22' visibility='default' filepath='rculfhash.c' line='336' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {cds_lfht_node* tbl_order[64]; cds_lfht_node* tbl_chunk[]; cds_lfht_node* tbl_mmap;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='./rculfhash-internal.h' line='111' column='1' id='type-id-56'>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_order[64] -->
+        <var-decl name='tbl_order' type-id='type-id-44' visibility='default' filepath='./rculfhash-internal.h' line='120' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_chunk[] -->
+        <var-decl name='tbl_chunk' type-id='type-id-46' visibility='default' filepath='./rculfhash-internal.h' line='132' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_lfht_node* tbl_mmap -->
+        <var-decl name='tbl_mmap' type-id='type-id-43' visibility='default' filepath='./rculfhash-internal.h' line='138' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct cds_lfht_iter -->
+    <class-decl name='cds_lfht_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu/rculfhash.h' line='66' column='1' id='type-id-68'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_lfht_node* cds_lfht_iter::node -->
+        <var-decl name='node' type-id='type-id-43' visibility='default' filepath='./urcu/rculfhash.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_lfht_node* cds_lfht_iter::next -->
+        <var-decl name='next' type-id='type-id-43' visibility='default' filepath='./urcu/rculfhash.h' line='67' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef int (cds_lfht_node*, void*)* cds_lfht_match_fct -->
+    <typedef-decl name='cds_lfht_match_fct' type-id='type-id-69' filepath='./urcu/rculfhash.h' line='83' column='1' id='type-id-70'/>
+    <!-- typedef __uint32_t uint32_t -->
+    <typedef-decl name='uint32_t' type-id='type-id-71' filepath='/usr/include/bits/stdint-uintn.h' line='26' column='1' id='type-id-72'/>
+    <!-- typedef unsigned int __uint32_t -->
+    <typedef-decl name='__uint32_t' type-id='type-id-26' filepath='/usr/include/bits/types.h' line='42' column='1' id='type-id-71'/>
+    <!-- cds_lfht* -->
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-73'/>
+    <!-- cds_lfht* (unsigned long int, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-74' size-in-bits='64' id='type-id-58'/>
+    <!-- cds_lfht_iter* -->
+    <pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-75'/>
+    <!-- cds_lfht_node* -->
+    <pointer-type-def type-id='type-id-60' size-in-bits='64' id='type-id-43'/>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int)* -->
+    <pointer-type-def type-id='type-id-76' size-in-bits='64' id='type-id-55'/>
+    <!-- const cds_lfht_mm_type -->
+    <qualified-type-def type-id='type-id-57' const='yes' id='type-id-77'/>
+    <!-- const cds_lfht_mm_type* -->
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-51'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-61' const='yes' id='type-id-78'/>
+    <!-- const rcu_flavor_struct* -->
+    <pointer-type-def type-id='type-id-78' size-in-bits='64' id='type-id-52'/>
+    <!-- ht_items_count* -->
+    <pointer-type-def type-id='type-id-67' size-in-bits='64' id='type-id-54'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-79' size-in-bits='64' id='type-id-63'/>
+    <!-- int (cds_lfht_node*, void*)* -->
+    <pointer-type-def type-id='type-id-80' size-in-bits='64' id='type-id-69'/>
+    <!-- long int* -->
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-81'/>
+    <!-- pthread_attr_t* -->
+    <pointer-type-def type-id='type-id-66' size-in-bits='64' id='type-id-53'/>
+    <!-- pthread_attr_t** -->
+    <pointer-type-def type-id='type-id-53' size-in-bits='64' id='type-id-82'/>
+    <!-- unsigned long int* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-83'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-84' size-in-bits='64' id='type-id-62'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-85' size-in-bits='64' id='type-id-59'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-86' size-in-bits='64' id='type-id-64'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-88'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-89'/>
+    <!-- void cds_lfht_resize(cds_lfht*, unsigned long int) -->
+    <function-decl name='cds_lfht_resize' mangled-name='cds_lfht_resize' filepath='rculfhash.c' line='1933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_resize'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1933' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size' filepath='rculfhash.c' line='1933' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_count_nodes(cds_lfht*, long int*, unsigned long int*, long int*) -->
+    <function-decl name='cds_lfht_count_nodes' mangled-name='cds_lfht_count_nodes' filepath='rculfhash.c' line='1810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_count_nodes'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1810' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-81' name='approx_before' filepath='rculfhash.c' line='1811' column='1'/>
+      <!-- parameter of type 'unsigned long int*' -->
+      <parameter type-id='type-id-83' name='count' filepath='rculfhash.c' line='1812' column='1'/>
+      <!-- parameter of type 'long int*' -->
+      <parameter type-id='type-id-81' name='approx_after' filepath='rculfhash.c' line='1813' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- int cds_lfht_destroy(cds_lfht*, pthread_attr_t**) -->
+    <function-decl name='cds_lfht_destroy' mangled-name='cds_lfht_destroy' filepath='rculfhash.c' line='1775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_destroy'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1775' column='1'/>
+      <!-- parameter of type 'pthread_attr_t**' -->
+      <parameter type-id='type-id-82' name='attr' filepath='rculfhash.c' line='1775' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_is_node_deleted(cds_lfht_node*) -->
+    <function-decl name='cds_lfht_is_node_deleted' mangled-name='cds_lfht_is_node_deleted' filepath='rculfhash.c' line='1732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_is_node_deleted'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-43' name='node' filepath='rculfhash.c' line='1732' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_del(cds_lfht*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_del' mangled-name='cds_lfht_del' filepath='rculfhash.c' line='1716' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_del'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1716' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-43' name='node' filepath='rculfhash.c' line='1716' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_replace(cds_lfht*, cds_lfht_iter*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_replace' mangled-name='cds_lfht_replace' filepath='rculfhash.c' line='1695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1695' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-75' name='old_iter' filepath='rculfhash.c' line='1696' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='rculfhash.c' line='1697' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-70' name='match' filepath='rculfhash.c' line='1698' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89' name='key' filepath='rculfhash.c' line='1699' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-43' name='new_node' filepath='rculfhash.c' line='1700' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_replace(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_replace' mangled-name='cds_lfht_add_replace' filepath='rculfhash.c' line='1672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_replace'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1672' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='rculfhash.c' line='1673' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-70' name='match' filepath='rculfhash.c' line='1674' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89' name='key' filepath='rculfhash.c' line='1675' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-43' name='node' filepath='rculfhash.c' line='1676' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_lfht_node* cds_lfht_add_unique(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add_unique' mangled-name='cds_lfht_add_unique' filepath='rculfhash.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add_unique'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1655' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='rculfhash.c' line='1656' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-70' name='match' filepath='rculfhash.c' line='1657' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89' name='key' filepath='rculfhash.c' line='1658' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-43' name='node' filepath='rculfhash.c' line='1659' column='1'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- void cds_lfht_add(cds_lfht*, unsigned long int, cds_lfht_node*) -->
+    <function-decl name='cds_lfht_add' mangled-name='cds_lfht_add' filepath='rculfhash.c' line='1644' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_add'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1644' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='rculfhash.c' line='1644' column='1'/>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-43' name='node' filepath='rculfhash.c' line='1645' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_first(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_first' mangled-name='cds_lfht_first' filepath='rculfhash.c' line='1634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_first'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1634' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-75' name='iter' filepath='rculfhash.c' line='1634' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next(cds_lfht*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next' mangled-name='cds_lfht_next' filepath='rculfhash.c' line='1612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1612' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-75' name='iter' filepath='rculfhash.c' line='1612' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_next_duplicate(cds_lfht*, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_next_duplicate' mangled-name='cds_lfht_next_duplicate' filepath='rculfhash.c' line='1579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_next_duplicate'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1579' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-70' name='match' filepath='rculfhash.c' line='1579' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89' name='key' filepath='rculfhash.c' line='1580' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-75' name='iter' filepath='rculfhash.c' line='1580' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- void cds_lfht_lookup(cds_lfht*, unsigned long int, cds_lfht_match_fct, void*, cds_lfht_iter*) -->
+    <function-decl name='cds_lfht_lookup' mangled-name='cds_lfht_lookup' filepath='rculfhash.c' line='1541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_lookup'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht' filepath='rculfhash.c' line='1541' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='hash' filepath='rculfhash.c' line='1541' column='1'/>
+      <!-- parameter of type 'typedef cds_lfht_match_fct' -->
+      <parameter type-id='type-id-70' name='match' filepath='rculfhash.c' line='1542' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89' name='key' filepath='rculfhash.c' line='1542' column='1'/>
+      <!-- parameter of type 'cds_lfht_iter*' -->
+      <parameter type-id='type-id-75' name='iter' filepath='rculfhash.c' line='1543' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-decl>
+    <!-- cds_lfht* _cds_lfht_new(unsigned long int, unsigned long int, unsigned long int, int, const cds_lfht_mm_type*, const rcu_flavor_struct*, pthread_attr_t*) -->
+    <function-decl name='_cds_lfht_new' mangled-name='_cds_lfht_new' filepath='rculfhash.c' line='1467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_cds_lfht_new'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='init_size' filepath='rculfhash.c' line='1467' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='min_nr_alloc_buckets' filepath='rculfhash.c' line='1468' column='1'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='max_nr_buckets' filepath='rculfhash.c' line='1469' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='flags' filepath='rculfhash.c' line='1470' column='1'/>
+      <!-- parameter of type 'const cds_lfht_mm_type*' -->
+      <parameter type-id='type-id-51' name='mm' filepath='rculfhash.c' line='1471' column='1'/>
+      <!-- parameter of type 'const rcu_flavor_struct*' -->
+      <parameter type-id='type-id-52' name='flavor' filepath='rculfhash.c' line='1472' column='1'/>
+      <!-- parameter of type 'pthread_attr_t*' -->
+      <parameter type-id='type-id-53' name='attr' filepath='rculfhash.c' line='1473' column='1'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-73'/>
+    </function-decl>
+    <!-- int cds_lfht_get_count_order_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_get_count_order_ulong' mangled-name='cds_lfht_get_count_order_ulong' filepath='rculfhash.c' line='551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_get_count_order_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='rculfhash.c' line='551' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int cds_lfht_get_count_order_u32(uint32_t) -->
+    <function-decl name='cds_lfht_get_count_order_u32' mangled-name='cds_lfht_get_count_order_u32' filepath='rculfhash.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_get_count_order_u32'>
+      <!-- parameter of type 'typedef uint32_t' -->
+      <parameter type-id='type-id-72' name='x' filepath='rculfhash.c' line='539' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- unsigned int cds_lfht_fls_ulong(unsigned long int) -->
+    <function-decl name='cds_lfht_fls_ulong' mangled-name='cds_lfht_fls_ulong' filepath='rculfhash.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_lfht_fls_ulong'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='x' filepath='rculfhash.c' line='526' column='1'/>
+      <!-- unsigned int -->
+      <return type-id='type-id-26'/>
+    </function-decl>
+    <!-- cds_lfht* (unsigned long int, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-74'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht* -->
+      <return type-id='type-id-73'/>
+    </function-type>
+    <!-- cds_lfht_node* (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-76'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22'/>
+      <!-- cds_lfht_node* -->
+      <return type-id='type-id-43'/>
+    </function-type>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-79'>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- int (cds_lfht_node*, void*) -->
+    <function-type size-in-bits='64' id='type-id-80'>
+      <!-- parameter of type 'cds_lfht_node*' -->
+      <parameter type-id='type-id-43'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-84'>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (cds_lfht*, unsigned long int) -->
+    <function-type size-in-bits='64' id='type-id-85'>
+      <!-- parameter of type 'cds_lfht*' -->
+      <parameter type-id='type-id-73' name='ht'/>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-22' name='new_size'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-86'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-88'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-87'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-89'/>
+      <!-- void -->
+      <return type-id='type-id-2'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-order.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_order -->
+    <var-decl name='cds_lfht_mm_order' type-id='type-id-77' mangled-name='cds_lfht_mm_order' visibility='default' filepath='./urcu/rculfhash.h' line='114' column='1' elf-symbol-id='cds_lfht_mm_order'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-chunk.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_chunk -->
+    <var-decl name='cds_lfht_mm_chunk' type-id='type-id-77' mangled-name='cds_lfht_mm_chunk' visibility='default' filepath='./urcu/rculfhash.h' line='115' column='1' elf-symbol-id='cds_lfht_mm_chunk'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='rculfhash-mm-mmap.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- const cds_lfht_mm_type cds_lfht_mm_mmap -->
+    <var-decl name='cds_lfht_mm_mmap' type-id='type-id-77' mangled-name='cds_lfht_mm_mmap' visibility='default' filepath='./urcu/rculfhash.h' line='116' column='1' elf-symbol-id='cds_lfht_mm_mmap'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='384' id='type-id-90'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-22' id='type-id-91'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-92'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-93'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-26' size-in-bits='64' id='type-id-94'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-22' id='type-id-95'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-96' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-97'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-96'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-98' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-90' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-92' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-98'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-99' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-94' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-94' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-94' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-99'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-93' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-100' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-100'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-26' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-101' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-102'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-1' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-101'/>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-103'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-104' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-105' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-104'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-24' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-105'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-103' const='yes' id='type-id-106'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-107'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-102' size-in-bits='64' id='type-id-108'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-37' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-97' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-108' name='uaddr' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-102' name='val' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-107' name='timeout' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-108' name='uaddr2' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-102' name='val3' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-108' name='uaddr' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-1' name='op' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-102' name='val' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-107' name='timeout' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-108' name='uaddr2' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-102' name='val3' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-1'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-common.so.4.xml b/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-common.so.4.xml
new file mode 100644 (file)
index 0000000..38e5b4c
--- /dev/null
@@ -0,0 +1,901 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-common.so.4'>
+  <elf-needed>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- __cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_dequeue_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfcq_dequeue_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_blocking -->
+    <elf-symbol name='__cds_wfcq_first_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_first_nonblocking -->
+    <elf-symbol name='__cds_wfcq_first_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_init -->
+    <elf-symbol name='__cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_blocking -->
+    <elf-symbol name='__cds_wfcq_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_next_nonblocking -->
+    <elf-symbol name='__cds_wfcq_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_blocking -->
+    <elf-symbol name='__cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfcq_splice_nonblocking -->
+    <elf-symbol name='__cds_wfcq_splice_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfq_dequeue_blocking -->
+    <elf-symbol name='__cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_init -->
+    <elf-symbol name='__cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_all -->
+    <elf-symbol name='__cds_wfs_pop_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_blocking -->
+    <elf-symbol name='__cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __cds_wfs_pop_with_state_nonblocking -->
+    <elf-symbol name='__cds_wfs_pop_with_state_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_lock -->
+    <elf-symbol name='cds_wfcq_dequeue_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_unlock -->
+    <elf-symbol name='cds_wfcq_dequeue_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_dequeue_with_state_blocking -->
+    <elf-symbol name='cds_wfcq_dequeue_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_destroy -->
+    <elf-symbol name='cds_wfcq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_empty -->
+    <elf-symbol name='cds_wfcq_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_enqueue -->
+    <elf-symbol name='cds_wfcq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_init -->
+    <elf-symbol name='cds_wfcq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_node_init -->
+    <elf-symbol name='cds_wfcq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfcq_splice_blocking -->
+    <elf-symbol name='cds_wfcq_splice_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_dequeue_blocking -->
+    <elf-symbol name='cds_wfq_dequeue_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_destroy -->
+    <elf-symbol name='cds_wfq_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_enqueue -->
+    <elf-symbol name='cds_wfq_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_init -->
+    <elf-symbol name='cds_wfq_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfq_node_init -->
+    <elf-symbol name='cds_wfq_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_destroy -->
+    <elf-symbol name='cds_wfs_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_empty -->
+    <elf-symbol name='cds_wfs_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_first -->
+    <elf-symbol name='cds_wfs_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_init -->
+    <elf-symbol name='cds_wfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_blocking -->
+    <elf-symbol name='cds_wfs_next_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_next_nonblocking -->
+    <elf-symbol name='cds_wfs_next_nonblocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_node_init -->
+    <elf-symbol name='cds_wfs_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_all_blocking -->
+    <elf-symbol name='cds_wfs_pop_all_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_blocking -->
+    <elf-symbol name='cds_wfs_pop_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_lock -->
+    <elf-symbol name='cds_wfs_pop_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_unlock -->
+    <elf-symbol name='cds_wfs_pop_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_pop_with_state_blocking -->
+    <elf-symbol name='cds_wfs_pop_with_state_blocking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- cds_wfs_push -->
+    <elf-symbol name='cds_wfs_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='wfqueue.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct cds_wfq_node -->
+    <class-decl name='cds_wfq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfqueue.h' line='48' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_node::next -->
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='urcu/wfqueue.h' line='49' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfq_queue -->
+    <class-decl name='cds_wfq_queue' size-in-bits='512' is-struct='yes' visibility='default' filepath='urcu/wfqueue.h' line='52' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfq_node* cds_wfq_queue::head -->
+        <var-decl name='head' type-id='type-id-11' visibility='default' filepath='urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfq_node** cds_wfq_queue::tail -->
+        <var-decl name='tail' type-id='type-id-13' visibility='default' filepath='urcu/wfqueue.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- cds_wfq_node cds_wfq_queue::dummy -->
+        <var-decl name='dummy' type-id='type-id-10' visibility='default' filepath='urcu/wfqueue.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- pthread_mutex_t cds_wfq_queue::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='urcu/wfqueue.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-15' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-14'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-15'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-16' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-16'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-17' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-18' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-17'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-18'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-19' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-19'/>
+    <!-- cds_wfq_node* -->
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
+    <!-- cds_wfq_node** -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-13'/>
+    <!-- cds_wfq_queue* -->
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-20'/>
+    <!-- cds_wfq_node* cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_dequeue_blocking' mangled-name='cds_wfq_dequeue_blocking' filepath='wfqueue.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='wfqueue.c' line='59' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- cds_wfq_node* __cds_wfq_dequeue_blocking(cds_wfq_queue*) -->
+    <function-decl name='__cds_wfq_dequeue_blocking' mangled-name='__cds_wfq_dequeue_blocking' filepath='wfqueue.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='wfqueue.c' line='54' column='1'/>
+      <!-- cds_wfq_node* -->
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <!-- void cds_wfq_enqueue(cds_wfq_queue*, cds_wfq_node*) -->
+    <function-decl name='cds_wfq_enqueue' mangled-name='cds_wfq_enqueue' filepath='wfqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_enqueue'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='wfqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='wfqueue.c' line='49' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_destroy(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_destroy' mangled-name='cds_wfq_destroy' filepath='wfqueue.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_destroy'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='wfqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_init(cds_wfq_queue*) -->
+    <function-decl name='cds_wfq_init' mangled-name='cds_wfq_init' filepath='wfqueue.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_init'>
+      <!-- parameter of type 'cds_wfq_queue*' -->
+      <parameter type-id='type-id-20' name='q' filepath='wfqueue.c' line='39' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfq_node_init(cds_wfq_node*) -->
+    <function-decl name='cds_wfq_node_init' mangled-name='cds_wfq_node_init' filepath='wfqueue.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfq_node_init'>
+      <!-- parameter of type 'cds_wfq_node*' -->
+      <parameter type-id='type-id-11' name='node' filepath='wfqueue.c' line='34' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfcqueue.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- bool -->
+    <type-decl name='bool' size-in-bits='8' id='type-id-21'/>
+    <!-- unnamed&#45;enum&#45;underlying&#45;type -->
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-22'/>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-24' visibility='default' filepath='urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfcq_head_ptr_t -->
+    <typedef-decl name='cds_wfcq_head_ptr_t' type-id='type-id-25' filepath='urcu/wfcqueue.h' line='86' column='1' id='type-id-26'/>
+    <!-- union {__cds_wfcq_head* _h; cds_wfcq_head* h;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='urcu/wfcqueue.h' line='83' column='1' id='type-id-25'>
+      <data-member access='private'>
+        <!-- __cds_wfcq_head* _h -->
+        <var-decl name='_h' type-id='type-id-27' visibility='default' filepath='urcu/wfcqueue.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfcq_head* h -->
+        <var-decl name='h' type-id='type-id-28' visibility='default' filepath='urcu/wfcqueue.h' line='85' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfcq_head -->
+    <class-decl name='__cds_wfcq_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='68' column='1' id='type-id-29'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node __cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='69' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='72' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='127' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-24' visibility='default' filepath='urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- enum cds_wfcq_ret -->
+    <enum-decl name='cds_wfcq_ret' filepath='urcu/wfcqueue.h' line='48' column='1' id='type-id-32'>
+      <underlying-type type-id='type-id-22'/>
+      <enumerator name='CDS_WFCQ_RET_WOULDBLOCK' value='-1'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_EMPTY' value='0'/>
+      <enumerator name='CDS_WFCQ_RET_DEST_NON_EMPTY' value='1'/>
+      <enumerator name='CDS_WFCQ_RET_SRC_EMPTY' value='2'/>
+    </enum-decl>
+    <!-- __cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-27'/>
+    <!-- cds_wfcq_head* -->
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-28'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-24'/>
+    <!-- cds_wfcq_tail* -->
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-33'/>
+    <!-- int* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-34'/>
+    <!-- cds_wfcq_node* __cds_wfcq_next_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_nonblocking' mangled-name='__cds_wfcq_next_nonblocking' filepath='wfcqueue.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='179' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='180' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='wfcqueue.c' line='181' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_next_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='__cds_wfcq_next_blocking' mangled-name='__cds_wfcq_next_blocking' filepath='wfcqueue.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_next_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='171' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='172' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='wfcqueue.c' line='173' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_nonblocking' mangled-name='__cds_wfcq_first_nonblocking' filepath='wfcqueue.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='164' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='165' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_first_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_first_blocking' mangled-name='__cds_wfcq_first_blocking' filepath='wfcqueue.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_first_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='157' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='158' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_nonblocking' mangled-name='__cds_wfcq_splice_nonblocking' filepath='wfcqueue.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='wfcqueue.c' line='147' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='wfcqueue.c' line='148' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='wfcqueue.c' line='149' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='wfcqueue.c' line='150' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_ret __cds_wfcq_splice_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_splice_blocking' mangled-name='__cds_wfcq_splice_blocking' filepath='wfcqueue.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='dest_q_head' filepath='wfcqueue.c' line='137' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='wfcqueue.c' line='138' column='1'/>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='src_q_head' filepath='wfcqueue.c' line='139' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='wfcqueue.c' line='140' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_nonblocking' mangled-name='__cds_wfcq_dequeue_with_state_nonblocking' filepath='wfcqueue.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='129' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='130' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='wfcqueue.c' line='131' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_nonblocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_nonblocking' mangled-name='__cds_wfcq_dequeue_nonblocking' filepath='wfcqueue.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='122' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='123' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*, int*) -->
+    <function-decl name='__cds_wfcq_dequeue_with_state_blocking' mangled-name='__cds_wfcq_dequeue_with_state_blocking' filepath='wfcqueue.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='114' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='115' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='wfcqueue.c' line='116' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* __cds_wfcq_dequeue_blocking(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_dequeue_blocking' mangled-name='__cds_wfcq_dequeue_blocking' filepath='wfcqueue.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='107' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='108' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_ret cds_wfcq_splice_blocking(cds_wfcq_head*, cds_wfcq_tail*, cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_splice_blocking' mangled-name='cds_wfcq_splice_blocking' filepath='wfcqueue.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_splice_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='dest_q_head' filepath='wfcqueue.c' line='97' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='dest_q_tail' filepath='wfcqueue.c' line='98' column='1'/>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='src_q_head' filepath='wfcqueue.c' line='99' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='src_q_tail' filepath='wfcqueue.c' line='100' column='1'/>
+      <!-- enum cds_wfcq_ret -->
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_with_state_blocking(cds_wfcq_head*, cds_wfcq_tail*, int*) -->
+    <function-decl name='cds_wfcq_dequeue_with_state_blocking' mangled-name='cds_wfcq_dequeue_with_state_blocking' filepath='wfcqueue.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_with_state_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='wfcqueue.c' line='89' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='90' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='wfcqueue.c' line='91' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- cds_wfcq_node* cds_wfcq_dequeue_blocking(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_blocking' mangled-name='cds_wfcq_dequeue_blocking' filepath='wfcqueue.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_blocking'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='wfcqueue.c' line='82' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='83' column='1'/>
+      <!-- cds_wfcq_node* -->
+      <return type-id='type-id-24'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_unlock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_unlock' mangled-name='cds_wfcq_dequeue_unlock' filepath='wfcqueue.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_unlock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='wfcqueue.c' line='75' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='76' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_dequeue_lock(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_dequeue_lock' mangled-name='cds_wfcq_dequeue_lock' filepath='wfcqueue.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_dequeue_lock'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='wfcqueue.c' line='69' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='70' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- bool cds_wfcq_enqueue(cds_wfcq_head_ptr_t, cds_wfcq_tail*, cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_enqueue' mangled-name='cds_wfcq_enqueue' filepath='wfcqueue.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_enqueue'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='62' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='63' column='1'/>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='wfcqueue.c' line='64' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- bool cds_wfcq_empty(cds_wfcq_head_ptr_t, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_empty' mangled-name='cds_wfcq_empty' filepath='wfcqueue.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_empty'>
+      <!-- parameter of type 'typedef cds_wfcq_head_ptr_t' -->
+      <parameter type-id='type-id-26' name='head' filepath='wfcqueue.c' line='55' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='56' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfcq_init(__cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='__cds_wfcq_init' mangled-name='__cds_wfcq_init' filepath='wfcqueue.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfcq_init'>
+      <!-- parameter of type '__cds_wfcq_head*' -->
+      <parameter type-id='type-id-27' name='head' filepath='wfcqueue.c' line='49' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='50' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_destroy(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_destroy' mangled-name='cds_wfcq_destroy' filepath='wfcqueue.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_destroy'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='wfcqueue.c' line='43' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='44' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_init(cds_wfcq_head*, cds_wfcq_tail*) -->
+    <function-decl name='cds_wfcq_init' mangled-name='cds_wfcq_init' filepath='wfcqueue.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_init'>
+      <!-- parameter of type 'cds_wfcq_head*' -->
+      <parameter type-id='type-id-28' name='head' filepath='wfcqueue.c' line='37' column='1'/>
+      <!-- parameter of type 'cds_wfcq_tail*' -->
+      <parameter type-id='type-id-33' name='tail' filepath='wfcqueue.c' line='38' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfcq_node_init(cds_wfcq_node*) -->
+    <function-decl name='cds_wfcq_node_init' mangled-name='cds_wfcq_node_init' filepath='wfcqueue.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfcq_node_init'>
+      <!-- parameter of type 'cds_wfcq_node*' -->
+      <parameter type-id='type-id-24' name='node' filepath='wfcqueue.c' line='32' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='wfstack.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- struct cds_wfs_head -->
+    <class-decl name='cds_wfs_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfstack.h' line='82' column='1' id='type-id-35'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node cds_wfs_head::node -->
+        <var-decl name='node' type-id='type-id-36' visibility='default' filepath='urcu/wfstack.h' line='83' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_node -->
+    <class-decl name='cds_wfs_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfstack.h' line='72' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_node* cds_wfs_node::next -->
+        <var-decl name='next' type-id='type-id-37' visibility='default' filepath='urcu/wfstack.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ cds_wfs_stack_ptr_t -->
+    <typedef-decl name='cds_wfs_stack_ptr_t' type-id='type-id-38' filepath='urcu/wfstack.h' line='103' column='1' id='type-id-39'/>
+    <!-- union {__cds_wfs_stack* _s; cds_wfs_stack* s;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='urcu/wfstack.h' line='100' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <!-- __cds_wfs_stack* _s -->
+        <var-decl name='_s' type-id='type-id-40' visibility='default' filepath='urcu/wfstack.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- cds_wfs_stack* s -->
+        <var-decl name='s' type-id='type-id-41' visibility='default' filepath='urcu/wfstack.h' line='102' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __cds_wfs_stack -->
+    <class-decl name='__cds_wfs_stack' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfstack.h' line='86' column='1' id='type-id-42'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* __cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='urcu/wfstack.h' line='87' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfs_stack -->
+    <class-decl name='cds_wfs_stack' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/wfstack.h' line='90' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfs_head* cds_wfs_stack::head -->
+        <var-decl name='head' type-id='type-id-43' visibility='default' filepath='urcu/wfstack.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfs_stack::lock -->
+        <var-decl name='lock' type-id='type-id-14' visibility='default' filepath='urcu/wfstack.h' line='92' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-40'/>
+    <!-- cds_wfs_head* -->
+    <pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-43'/>
+    <!-- cds_wfs_node* -->
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-37'/>
+    <!-- cds_wfs_stack* -->
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-41'/>
+    <!-- cds_wfs_head* __cds_wfs_pop_all(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_all' mangled-name='__cds_wfs_pop_all' filepath='wfstack.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_all'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='wfstack.c' line='126' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_nonblocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_nonblocking' mangled-name='__cds_wfs_pop_with_state_nonblocking' filepath='wfstack.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='wfstack.c' line='120' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='wfstack.c' line='121' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_nonblocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_nonblocking' mangled-name='__cds_wfs_pop_nonblocking' filepath='wfstack.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_nonblocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='wfstack.c' line='114' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_with_state_blocking(cds_wfs_stack_ptr_t, int*) -->
+    <function-decl name='__cds_wfs_pop_with_state_blocking' mangled-name='__cds_wfs_pop_with_state_blocking' filepath='wfstack.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='wfstack.c' line='108' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='wfstack.c' line='109' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* __cds_wfs_pop_blocking(cds_wfs_stack_ptr_t) -->
+    <function-decl name='__cds_wfs_pop_blocking' mangled-name='__cds_wfs_pop_blocking' filepath='wfstack.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_pop_blocking'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='wfstack.c' line='102' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_unlock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_unlock' mangled-name='cds_wfs_pop_unlock' filepath='wfstack.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_unlock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='wfstack.c' line='97' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_pop_lock(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_lock' mangled-name='cds_wfs_pop_lock' filepath='wfstack.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_lock'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='wfstack.c' line='92' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_nonblocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_nonblocking' mangled-name='cds_wfs_next_nonblocking' filepath='wfstack.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_nonblocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='wfstack.c' line='87' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_next_blocking(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_next_blocking' mangled-name='cds_wfs_next_blocking' filepath='wfstack.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_next_blocking'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='wfstack.c' line='82' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_first(cds_wfs_head*) -->
+    <function-decl name='cds_wfs_first' mangled-name='cds_wfs_first' filepath='wfstack.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_first'>
+      <!-- parameter of type 'cds_wfs_head*' -->
+      <parameter type-id='type-id-43' name='head' filepath='wfstack.c' line='77' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_head* cds_wfs_pop_all_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_all_blocking' mangled-name='cds_wfs_pop_all_blocking' filepath='wfstack.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_all_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='wfstack.c' line='72' column='1'/>
+      <!-- cds_wfs_head* -->
+      <return type-id='type-id-43'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_with_state_blocking(cds_wfs_stack*, int*) -->
+    <function-decl name='cds_wfs_pop_with_state_blocking' mangled-name='cds_wfs_pop_with_state_blocking' filepath='wfstack.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_with_state_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='wfstack.c' line='67' column='1'/>
+      <!-- parameter of type 'int*' -->
+      <parameter type-id='type-id-34' name='state' filepath='wfstack.c' line='67' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- cds_wfs_node* cds_wfs_pop_blocking(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_pop_blocking' mangled-name='cds_wfs_pop_blocking' filepath='wfstack.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_pop_blocking'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='wfstack.c' line='61' column='1'/>
+      <!-- cds_wfs_node* -->
+      <return type-id='type-id-37'/>
+    </function-decl>
+    <!-- int cds_wfs_push(cds_wfs_stack_ptr_t, cds_wfs_node*) -->
+    <function-decl name='cds_wfs_push' mangled-name='cds_wfs_push' filepath='wfstack.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_push'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='wfstack.c' line='56' column='1'/>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='wfstack.c' line='56' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- bool cds_wfs_empty(cds_wfs_stack_ptr_t) -->
+    <function-decl name='cds_wfs_empty' mangled-name='cds_wfs_empty' filepath='wfstack.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_empty'>
+      <!-- parameter of type 'typedef cds_wfs_stack_ptr_t' -->
+      <parameter type-id='type-id-39' name='u_stack' filepath='wfstack.c' line='51' column='1'/>
+      <!-- bool -->
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <!-- void __cds_wfs_init(__cds_wfs_stack*) -->
+    <function-decl name='__cds_wfs_init' mangled-name='__cds_wfs_init' filepath='wfstack.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cds_wfs_init'>
+      <!-- parameter of type '__cds_wfs_stack*' -->
+      <parameter type-id='type-id-40' name='s' filepath='wfstack.c' line='46' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_destroy(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_destroy' mangled-name='cds_wfs_destroy' filepath='wfstack.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_destroy'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='wfstack.c' line='41' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_init(cds_wfs_stack*) -->
+    <function-decl name='cds_wfs_init' mangled-name='cds_wfs_init' filepath='wfstack.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_init'>
+      <!-- parameter of type 'cds_wfs_stack*' -->
+      <parameter type-id='type-id-41' name='s' filepath='wfstack.c' line='36' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void cds_wfs_node_init(cds_wfs_node*) -->
+    <function-decl name='cds_wfs_node_init' mangled-name='cds_wfs_node_init' filepath='wfstack.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cds_wfs_node_init'>
+      <!-- parameter of type 'cds_wfs_node*' -->
+      <parameter type-id='type-id-37' name='node' filepath='wfstack.c' line='31' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-45'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-46'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-47'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-48'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-49'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-50'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-51' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-52'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-51'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-45' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-54' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-54'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-48' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-56' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-57'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-56'/>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-57' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-14' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-52' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-57' name='val3' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-mb.so.4.xml b/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-mb.so.4.xml
new file mode 100644 (file)
index 0000000..29012e8
--- /dev/null
@@ -0,0 +1,787 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-mb.so.4'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.4'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_mb -->
+    <elf-symbol name='call_rcu_after_fork_child_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_mb -->
+    <elf-symbol name='call_rcu_after_fork_parent_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_mb -->
+    <elf-symbol name='call_rcu_before_fork_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_mb -->
+    <elf-symbol name='call_rcu_data_free_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_mb -->
+    <elf-symbol name='call_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_mb -->
+    <elf-symbol name='create_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_mb -->
+    <elf-symbol name='defer_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_mb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_mb -->
+    <elf-symbol name='get_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_mb -->
+    <elf-symbol name='get_call_rcu_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_mb -->
+    <elf-symbol name='get_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_mb -->
+    <elf-symbol name='get_default_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_mb -->
+    <elf-symbol name='get_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_mb -->
+    <elf-symbol name='rcu_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_mb -->
+    <elf-symbol name='rcu_defer_barrier_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_mb -->
+    <elf-symbol name='rcu_defer_barrier_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_mb -->
+    <elf-symbol name='rcu_defer_exit_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_mb -->
+    <elf-symbol name='rcu_defer_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_mb -->
+    <elf-symbol name='rcu_defer_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_mb -->
+    <elf-symbol name='rcu_init_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_mb -->
+    <elf-symbol name='rcu_read_lock_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_mb -->
+    <elf-symbol name='rcu_read_ongoing_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_mb -->
+    <elf-symbol name='rcu_read_unlock_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_mb -->
+    <elf-symbol name='rcu_register_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_mb -->
+    <elf-symbol name='rcu_unregister_thread_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_mb -->
+    <elf-symbol name='set_cpu_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_mb -->
+    <elf-symbol name='set_thread_call_rcu_data_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_mb -->
+    <elf-symbol name='synchronize_rcu_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_mb -->
+    <elf-symbol name='rcu_flavor_mb' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_mb -->
+    <elf-symbol name='rcu_gp_mb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_mb -->
+    <elf-symbol name='rcu_reader_mb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_mb -->
+    <class-decl name='rcu_gp_mb' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu/static/urcu.h' line='127' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_mb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu.h' line='135' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_mb::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu/static/urcu.h' line='137' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_mb -->
+    <class-decl name='rcu_reader_mb' size-in-bits='2048' is-struct='yes' visibility='default' filepath='urcu/static/urcu.h' line='142' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_mb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char rcu_reader_mb::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='urcu/static/urcu.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_mb::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='urcu/static/urcu.h' line='147' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_mb::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu/static/urcu.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_mb::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='urcu/static/urcu.h' line='150' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='768' is-struct='yes' visibility='default' filepath='./urcu-flavor.h' line='30' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='./urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='./urcu-flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='./urcu-flavor.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu-call-rcu.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-23' visibility='default' filepath='./urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-24' visibility='default' filepath='./urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu-call-rcu-impl.h' line='54' column='1' id='type-id-26'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-27' visibility='default' filepath='urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-28' visibility='default' filepath='urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='urcu-call-rcu-impl.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='127' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='72' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-29' visibility='default' filepath='urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-30' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-29'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-31' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-32' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-33' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-32'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-33'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-25'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-36'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-38'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-39' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-24'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-44'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-45'/>
+    <!-- rcu_gp_mb rcu_gp_mb -->
+    <var-decl name='rcu_gp_mb' type-id='type-id-10' mangled-name='rcu_gp_mb' visibility='default' filepath='urcu/static/urcu.h' line='140' column='1' elf-symbol-id='rcu_gp_mb'/>
+    <!-- rcu_reader_mb rcu_reader_mb -->
+    <var-decl name='rcu_reader_mb' type-id='type-id-13' mangled-name='rcu_reader_mb' visibility='default' filepath='urcu/static/urcu.h' line='153' column='1' elf-symbol-id='rcu_reader_mb'/>
+    <!-- const rcu_flavor_struct rcu_flavor_mb -->
+    <var-decl name='rcu_flavor_mb' type-id='type-id-36' mangled-name='rcu_flavor_mb' visibility='default' filepath='./urcu-flavor.h' line='64' column='1' elf-symbol-id='rcu_flavor_mb'/>
+    <!-- void rcu_defer_exit_mb() -->
+    <function-decl name='rcu_defer_exit_mb' mangled-name='rcu_defer_exit_mb' filepath='urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_mb() -->
+    <function-decl name='rcu_defer_unregister_thread_mb' mangled-name='rcu_defer_unregister_thread_mb' filepath='urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_mb() -->
+    <function-decl name='rcu_defer_register_thread_mb' mangled-name='rcu_defer_register_thread_mb' filepath='urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_mb(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_mb' mangled-name='defer_rcu_mb' filepath='urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_mb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44' name='fct' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_mb() -->
+    <function-decl name='rcu_defer_barrier_mb' mangled-name='rcu_defer_barrier_mb' filepath='urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_mb() -->
+    <function-decl name='rcu_defer_barrier_thread_mb' mangled-name='rcu_defer_barrier_thread_mb' filepath='urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_mb() -->
+    <function-decl name='call_rcu_after_fork_child_mb' mangled-name='call_rcu_after_fork_child_mb' filepath='urcu-call-rcu-impl.h' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_mb() -->
+    <function-decl name='call_rcu_after_fork_parent_mb' mangled-name='call_rcu_after_fork_parent_mb' filepath='urcu-call-rcu-impl.h' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_mb() -->
+    <function-decl name='call_rcu_before_fork_mb' mangled-name='call_rcu_before_fork_mb' filepath='urcu-call-rcu-impl.h' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_mb() -->
+    <function-decl name='rcu_barrier_mb' mangled-name='rcu_barrier_mb' filepath='urcu-call-rcu-impl.h' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_mb() -->
+    <function-decl name='free_all_cpu_call_rcu_data_mb' mangled-name='free_all_cpu_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_mb(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_mb' mangled-name='call_rcu_data_free_mb' filepath='urcu-call-rcu-impl.h' line='743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='743' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_mb(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_mb' mangled-name='call_rcu_mb' filepath='urcu-call-rcu-impl.h' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_mb'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38' name='head' filepath='urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24' name='func' filepath='urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_mb(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_mb' mangled-name='create_all_cpu_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='627' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_mb(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_mb' mangled-name='set_thread_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='614' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_mb() -->
+    <function-decl name='get_thread_call_rcu_data_mb' mangled-name='get_thread_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_mb() -->
+    <function-decl name='get_call_rcu_data_mb' mangled-name='get_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_mb() -->
+    <function-decl name='get_default_call_rcu_data_mb' mangled-name='get_default_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_mb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_mb(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_mb' mangled-name='set_cpu_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_mb(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_mb' mangled-name='create_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_mb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_mb(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_mb' mangled-name='get_call_rcu_thread_mb' filepath='urcu-call-rcu-impl.h' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_mb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='472' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_mb(int) -->
+    <function-decl name='get_cpu_call_rcu_data_mb' mangled-name='get_cpu_call_rcu_data_mb' filepath='urcu-call-rcu-impl.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_mb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='450' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_mb() -->
+    <function-decl name='rcu_unregister_thread_mb' mangled-name='rcu_unregister_thread_mb' filepath='urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_mb() -->
+    <function-decl name='rcu_register_thread_mb' mangled-name='rcu_register_thread_mb' filepath='urcu.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_mb() -->
+    <function-decl name='rcu_read_ongoing_mb' mangled-name='rcu_read_ongoing_mb' filepath='urcu.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_mb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_mb() -->
+    <function-decl name='rcu_read_unlock_mb' mangled-name='rcu_read_unlock_mb' filepath='urcu.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_mb() -->
+    <function-decl name='rcu_read_lock_mb' mangled-name='rcu_read_lock_mb' filepath='urcu.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_mb() -->
+    <function-decl name='synchronize_rcu_mb' mangled-name='synchronize_rcu_mb' filepath='urcu.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_init_mb() -->
+    <function-decl name='rcu_init_mb' mangled-name='rcu_init_mb' filepath='urcu.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_mb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-37'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-39'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-40'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-42'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-43'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-46'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='old' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='_new' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-47'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-48'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-49'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-50'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-51'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-53' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-54'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-53'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-56' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-56'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-50' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-57' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-57'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-29' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-54' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-qsbr.so.4.xml b/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-qsbr.so.4.xml
new file mode 100644 (file)
index 0000000..79872eb
--- /dev/null
@@ -0,0 +1,808 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-qsbr.so.4'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.4'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_child_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_qsbr -->
+    <elf-symbol name='call_rcu_after_fork_parent_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_qsbr -->
+    <elf-symbol name='call_rcu_before_fork_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_qsbr -->
+    <elf-symbol name='call_rcu_data_free_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_qsbr -->
+    <elf-symbol name='call_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_qsbr -->
+    <elf-symbol name='create_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_qsbr -->
+    <elf-symbol name='defer_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data -->
+    <elf-symbol name='free_all_cpu_call_rcu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_qsbr -->
+    <elf-symbol name='get_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_qsbr -->
+    <elf-symbol name='get_call_rcu_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='get_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_qsbr -->
+    <elf-symbol name='get_default_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='get_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_qsbr -->
+    <elf-symbol name='rcu_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_qsbr -->
+    <elf-symbol name='rcu_defer_barrier_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_qsbr -->
+    <elf-symbol name='rcu_defer_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_qsbr -->
+    <elf-symbol name='rcu_defer_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_defer_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_qsbr -->
+    <elf-symbol name='rcu_exit_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_quiescent_state_qsbr -->
+    <elf-symbol name='rcu_quiescent_state_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_qsbr -->
+    <elf-symbol name='rcu_read_lock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_qsbr -->
+    <elf-symbol name='rcu_read_ongoing_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_qsbr -->
+    <elf-symbol name='rcu_read_unlock_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_qsbr -->
+    <elf-symbol name='rcu_register_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_offline_qsbr -->
+    <elf-symbol name='rcu_thread_offline_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_thread_online_qsbr -->
+    <elf-symbol name='rcu_thread_online_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_qsbr -->
+    <elf-symbol name='rcu_unregister_thread_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_qsbr -->
+    <elf-symbol name='set_cpu_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_qsbr -->
+    <elf-symbol name='set_thread_call_rcu_data_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_qsbr -->
+    <elf-symbol name='synchronize_rcu_qsbr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_qsbr -->
+    <elf-symbol name='rcu_flavor_qsbr' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_qsbr -->
+    <elf-symbol name='rcu_gp_qsbr' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_qsbr -->
+    <elf-symbol name='rcu_reader_qsbr' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu-qsbr.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_qsbr -->
+    <class-decl name='rcu_gp_qsbr' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='68' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_qsbr::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_qsbr::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='76' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_qsbr -->
+    <class-decl name='rcu_reader_qsbr' size-in-bits='2048' is-struct='yes' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='81' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_qsbr::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_qsbr::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- int rcu_reader_qsbr::waiting -->
+        <var-decl name='waiting' type-id='type-id-5' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <!-- pthread_t rcu_reader_qsbr::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_qsbr::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='89' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='768' is-struct='yes' visibility='default' filepath='./urcu-flavor.h' line='30' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='./urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='./urcu-flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='./urcu-flavor.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu-call-rcu.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-23' visibility='default' filepath='./urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-24' visibility='default' filepath='./urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu-call-rcu-impl.h' line='54' column='1' id='type-id-26'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-27' visibility='default' filepath='urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-28' visibility='default' filepath='urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='urcu-call-rcu-impl.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='127' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='72' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-29' visibility='default' filepath='urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-30' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-29'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-31' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-32' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-33' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-32'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-33'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-25'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-36'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-38'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-39' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-24'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-44'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-45'/>
+    <!-- rcu_gp_qsbr rcu_gp_qsbr -->
+    <var-decl name='rcu_gp_qsbr' type-id='type-id-10' mangled-name='rcu_gp_qsbr' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='79' column='1' elf-symbol-id='rcu_gp_qsbr'/>
+    <!-- rcu_reader_qsbr rcu_reader_qsbr -->
+    <var-decl name='rcu_reader_qsbr' type-id='type-id-13' mangled-name='rcu_reader_qsbr' visibility='default' filepath='urcu/static/urcu-qsbr.h' line='92' column='1' elf-symbol-id='rcu_reader_qsbr'/>
+    <!-- const rcu_flavor_struct rcu_flavor_qsbr -->
+    <var-decl name='rcu_flavor_qsbr' type-id='type-id-36' mangled-name='rcu_flavor_qsbr' visibility='default' filepath='./urcu-flavor.h' line='64' column='1' elf-symbol-id='rcu_flavor_qsbr'/>
+    <!-- void rcu_defer_exit_qsbr() -->
+    <function-decl name='rcu_defer_exit_qsbr' mangled-name='rcu_defer_exit_qsbr' filepath='urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_qsbr() -->
+    <function-decl name='rcu_defer_unregister_thread_qsbr' mangled-name='rcu_defer_unregister_thread_qsbr' filepath='urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_qsbr() -->
+    <function-decl name='rcu_defer_register_thread_qsbr' mangled-name='rcu_defer_register_thread_qsbr' filepath='urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_qsbr'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_qsbr(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_qsbr' mangled-name='defer_rcu_qsbr' filepath='urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_qsbr'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44' name='fct' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_qsbr() -->
+    <function-decl name='rcu_defer_barrier_qsbr' mangled-name='rcu_defer_barrier_qsbr' filepath='urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_qsbr() -->
+    <function-decl name='rcu_defer_barrier_thread_qsbr' mangled-name='rcu_defer_barrier_thread_qsbr' filepath='urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_qsbr() -->
+    <function-decl name='call_rcu_after_fork_child_qsbr' mangled-name='call_rcu_after_fork_child_qsbr' filepath='urcu-call-rcu-impl.h' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_qsbr() -->
+    <function-decl name='call_rcu_after_fork_parent_qsbr' mangled-name='call_rcu_after_fork_parent_qsbr' filepath='urcu-call-rcu-impl.h' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_qsbr() -->
+    <function-decl name='call_rcu_before_fork_qsbr' mangled-name='call_rcu_before_fork_qsbr' filepath='urcu-call-rcu-impl.h' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_qsbr() -->
+    <function-decl name='rcu_barrier_qsbr' mangled-name='rcu_barrier_qsbr' filepath='urcu-call-rcu-impl.h' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data() -->
+    <function-decl name='free_all_cpu_call_rcu_data' mangled-name='free_all_cpu_call_rcu_data' filepath='urcu-call-rcu-impl.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_qsbr(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_qsbr' mangled-name='call_rcu_data_free_qsbr' filepath='urcu-call-rcu-impl.h' line='743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='743' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_qsbr(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_qsbr' mangled-name='call_rcu_qsbr' filepath='urcu-call-rcu-impl.h' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_qsbr'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38' name='head' filepath='urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24' name='func' filepath='urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_qsbr(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_qsbr' mangled-name='create_all_cpu_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='627' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_qsbr(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_qsbr' mangled-name='set_thread_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='614' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_qsbr() -->
+    <function-decl name='get_thread_call_rcu_data_qsbr' mangled-name='get_thread_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_qsbr() -->
+    <function-decl name='get_call_rcu_data_qsbr' mangled-name='get_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_qsbr() -->
+    <function-decl name='get_default_call_rcu_data_qsbr' mangled-name='get_default_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_qsbr'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_qsbr(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_qsbr' mangled-name='set_cpu_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_qsbr(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_qsbr' mangled-name='create_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_qsbr'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_qsbr(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_qsbr' mangled-name='get_call_rcu_thread_qsbr' filepath='urcu-call-rcu-impl.h' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_qsbr'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='472' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_qsbr(int) -->
+    <function-decl name='get_cpu_call_rcu_data_qsbr' mangled-name='get_cpu_call_rcu_data_qsbr' filepath='urcu-call-rcu-impl.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_qsbr'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='450' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- void rcu_exit_qsbr() -->
+    <function-decl name='rcu_exit_qsbr' mangled-name='rcu_exit_qsbr' filepath='urcu-qsbr.c' line='492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_exit_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_qsbr() -->
+    <function-decl name='rcu_unregister_thread_qsbr' mangled-name='rcu_unregister_thread_qsbr' filepath='urcu-qsbr.c' line='478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_qsbr() -->
+    <function-decl name='rcu_register_thread_qsbr' mangled-name='rcu_register_thread_qsbr' filepath='urcu-qsbr.c' line='465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_thread_online_qsbr() -->
+    <function-decl name='rcu_thread_online_qsbr' mangled-name='rcu_thread_online_qsbr' filepath='urcu-qsbr.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_thread_online_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_thread_offline_qsbr() -->
+    <function-decl name='rcu_thread_offline_qsbr' mangled-name='rcu_thread_offline_qsbr' filepath='urcu-qsbr.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_thread_offline_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_quiescent_state_qsbr() -->
+    <function-decl name='rcu_quiescent_state_qsbr' mangled-name='rcu_quiescent_state_qsbr' filepath='urcu-qsbr.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_quiescent_state_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_qsbr() -->
+    <function-decl name='rcu_read_ongoing_qsbr' mangled-name='rcu_read_ongoing_qsbr' filepath='urcu-qsbr.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_qsbr'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_qsbr() -->
+    <function-decl name='rcu_read_unlock_qsbr' mangled-name='rcu_read_unlock_qsbr' filepath='urcu-qsbr.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_qsbr() -->
+    <function-decl name='rcu_read_lock_qsbr' mangled-name='rcu_read_lock_qsbr' filepath='urcu-qsbr.c' line='435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_qsbr() -->
+    <function-decl name='synchronize_rcu_qsbr' mangled-name='synchronize_rcu_qsbr' filepath='urcu-qsbr.c' line='345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_qsbr'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-37'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-39'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-40'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-42'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-43'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-46'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='old' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='_new' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-47'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-48'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-49'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-50'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-51'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-53' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-54'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-53'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-56' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-56'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-50' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-57' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-57'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-29' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-54' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-signal.so.4.xml b/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu-signal.so.4.xml
new file mode 100644 (file)
index 0000000..228800c
--- /dev/null
@@ -0,0 +1,794 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu-signal.so.4'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.4'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_sig -->
+    <elf-symbol name='call_rcu_after_fork_child_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_sig -->
+    <elf-symbol name='call_rcu_after_fork_parent_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_sig -->
+    <elf-symbol name='call_rcu_before_fork_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_sig -->
+    <elf-symbol name='call_rcu_data_free_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_sig -->
+    <elf-symbol name='call_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_sig -->
+    <elf-symbol name='create_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_sig -->
+    <elf-symbol name='defer_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_sig -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_sig -->
+    <elf-symbol name='get_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_sig -->
+    <elf-symbol name='get_call_rcu_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_sig -->
+    <elf-symbol name='get_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_sig -->
+    <elf-symbol name='get_default_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_sig -->
+    <elf-symbol name='get_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_sig -->
+    <elf-symbol name='rcu_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_sig -->
+    <elf-symbol name='rcu_defer_barrier_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_sig -->
+    <elf-symbol name='rcu_defer_barrier_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_sig -->
+    <elf-symbol name='rcu_defer_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_sig -->
+    <elf-symbol name='rcu_defer_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_sig -->
+    <elf-symbol name='rcu_defer_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_exit_sig -->
+    <elf-symbol name='rcu_exit_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_sig -->
+    <elf-symbol name='rcu_init_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_sig -->
+    <elf-symbol name='rcu_read_lock_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_sig -->
+    <elf-symbol name='rcu_read_ongoing_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_sig -->
+    <elf-symbol name='rcu_read_unlock_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_sig -->
+    <elf-symbol name='rcu_register_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_sig -->
+    <elf-symbol name='rcu_unregister_thread_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_sig -->
+    <elf-symbol name='set_cpu_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_sig -->
+    <elf-symbol name='set_thread_call_rcu_data_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_sig -->
+    <elf-symbol name='synchronize_rcu_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_sig -->
+    <elf-symbol name='rcu_flavor_sig' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_sig -->
+    <elf-symbol name='rcu_gp_sig' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_sig -->
+    <elf-symbol name='rcu_reader_sig' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_sig -->
+    <class-decl name='rcu_gp_sig' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu/static/urcu.h' line='127' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_sig::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu.h' line='135' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_sig::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu/static/urcu.h' line='137' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_sig -->
+    <class-decl name='rcu_reader_sig' size-in-bits='2048' is-struct='yes' visibility='default' filepath='urcu/static/urcu.h' line='142' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_sig::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char rcu_reader_sig::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='urcu/static/urcu.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_sig::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='urcu/static/urcu.h' line='147' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_sig::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu/static/urcu.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_sig::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='urcu/static/urcu.h' line='150' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='768' is-struct='yes' visibility='default' filepath='./urcu-flavor.h' line='30' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='./urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='./urcu-flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='./urcu-flavor.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu-call-rcu.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-23' visibility='default' filepath='./urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-24' visibility='default' filepath='./urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu-call-rcu-impl.h' line='54' column='1' id='type-id-26'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-27' visibility='default' filepath='urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-28' visibility='default' filepath='urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='urcu-call-rcu-impl.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='127' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='72' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-29' visibility='default' filepath='urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-30' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-29'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-31' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-32' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-33' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-32'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-33'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-25'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-36'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-38'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-39' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-24'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-44'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-45'/>
+    <!-- rcu_gp_sig rcu_gp_sig -->
+    <var-decl name='rcu_gp_sig' type-id='type-id-10' mangled-name='rcu_gp_sig' visibility='default' filepath='urcu/static/urcu.h' line='140' column='1' elf-symbol-id='rcu_gp_sig'/>
+    <!-- rcu_reader_sig rcu_reader_sig -->
+    <var-decl name='rcu_reader_sig' type-id='type-id-13' mangled-name='rcu_reader_sig' visibility='default' filepath='urcu/static/urcu.h' line='153' column='1' elf-symbol-id='rcu_reader_sig'/>
+    <!-- const rcu_flavor_struct rcu_flavor_sig -->
+    <var-decl name='rcu_flavor_sig' type-id='type-id-36' mangled-name='rcu_flavor_sig' visibility='default' filepath='./urcu-flavor.h' line='64' column='1' elf-symbol-id='rcu_flavor_sig'/>
+    <!-- void rcu_defer_exit_sig() -->
+    <function-decl name='rcu_defer_exit_sig' mangled-name='rcu_defer_exit_sig' filepath='urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_sig() -->
+    <function-decl name='rcu_defer_unregister_thread_sig' mangled-name='rcu_defer_unregister_thread_sig' filepath='urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_sig() -->
+    <function-decl name='rcu_defer_register_thread_sig' mangled-name='rcu_defer_register_thread_sig' filepath='urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_sig'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_sig(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_sig' mangled-name='defer_rcu_sig' filepath='urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_sig'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44' name='fct' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_sig() -->
+    <function-decl name='rcu_defer_barrier_sig' mangled-name='rcu_defer_barrier_sig' filepath='urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_sig() -->
+    <function-decl name='rcu_defer_barrier_thread_sig' mangled-name='rcu_defer_barrier_thread_sig' filepath='urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_sig() -->
+    <function-decl name='call_rcu_after_fork_child_sig' mangled-name='call_rcu_after_fork_child_sig' filepath='urcu-call-rcu-impl.h' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_sig() -->
+    <function-decl name='call_rcu_after_fork_parent_sig' mangled-name='call_rcu_after_fork_parent_sig' filepath='urcu-call-rcu-impl.h' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_sig() -->
+    <function-decl name='call_rcu_before_fork_sig' mangled-name='call_rcu_before_fork_sig' filepath='urcu-call-rcu-impl.h' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_sig() -->
+    <function-decl name='rcu_barrier_sig' mangled-name='rcu_barrier_sig' filepath='urcu-call-rcu-impl.h' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_sig() -->
+    <function-decl name='free_all_cpu_call_rcu_data_sig' mangled-name='free_all_cpu_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_sig(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_sig' mangled-name='call_rcu_data_free_sig' filepath='urcu-call-rcu-impl.h' line='743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='743' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_sig(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_sig' mangled-name='call_rcu_sig' filepath='urcu-call-rcu-impl.h' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_sig'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38' name='head' filepath='urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24' name='func' filepath='urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_sig(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_sig' mangled-name='create_all_cpu_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='627' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_sig(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_sig' mangled-name='set_thread_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='614' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_sig() -->
+    <function-decl name='get_thread_call_rcu_data_sig' mangled-name='get_thread_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_sig'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_sig() -->
+    <function-decl name='get_call_rcu_data_sig' mangled-name='get_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_sig'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_sig() -->
+    <function-decl name='get_default_call_rcu_data_sig' mangled-name='get_default_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_sig'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_sig(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_sig' mangled-name='set_cpu_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_sig(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_sig' mangled-name='create_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_sig'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_sig(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_sig' mangled-name='get_call_rcu_thread_sig' filepath='urcu-call-rcu-impl.h' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_sig'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='472' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_sig(int) -->
+    <function-decl name='get_cpu_call_rcu_data_sig' mangled-name='get_cpu_call_rcu_data_sig' filepath='urcu-call-rcu-impl.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_sig'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='450' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- void rcu_exit_sig() -->
+    <function-decl name='rcu_exit_sig' mangled-name='rcu_exit_sig' filepath='urcu.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_exit_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_init_sig() -->
+    <function-decl name='rcu_init_sig' mangled-name='rcu_init_sig' filepath='urcu.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_sig() -->
+    <function-decl name='rcu_unregister_thread_sig' mangled-name='rcu_unregister_thread_sig' filepath='urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_sig() -->
+    <function-decl name='rcu_register_thread_sig' mangled-name='rcu_register_thread_sig' filepath='urcu.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_sig() -->
+    <function-decl name='rcu_read_ongoing_sig' mangled-name='rcu_read_ongoing_sig' filepath='urcu.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_sig'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_sig() -->
+    <function-decl name='rcu_read_unlock_sig' mangled-name='rcu_read_unlock_sig' filepath='urcu.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_sig() -->
+    <function-decl name='rcu_read_lock_sig' mangled-name='rcu_read_lock_sig' filepath='urcu.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_sig() -->
+    <function-decl name='synchronize_rcu_sig' mangled-name='synchronize_rcu_sig' filepath='urcu.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_sig'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-37'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-39'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-40'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-42'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-43'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-46'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='old' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='_new' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-47'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-48'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-49'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-50'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-51'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-53' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-54'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-53'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-56' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-56'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-50' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-57' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-57'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-29' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-54' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu.so.4.xml b/extras/abi/0.9/x86_64-pc-linux-gnu/liburcu.so.4.xml
new file mode 100644 (file)
index 0000000..d0ad504
--- /dev/null
@@ -0,0 +1,791 @@
+<abi-corpus architecture='elf-amd-x86_64' soname='liburcu.so.4'>
+  <elf-needed>
+    <dependency name='liburcu-common.so.4'/>
+    <dependency name='libpthread.so.0'/>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <!-- call_rcu_after_fork_child_memb -->
+    <elf-symbol name='call_rcu_after_fork_child_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_after_fork_parent_memb -->
+    <elf-symbol name='call_rcu_after_fork_parent_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_before_fork_memb -->
+    <elf-symbol name='call_rcu_before_fork_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_data_free_memb -->
+    <elf-symbol name='call_rcu_data_free_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- call_rcu_memb -->
+    <elf-symbol name='call_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_async -->
+    <elf-symbol name='compat_futex_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- compat_futex_noasync -->
+    <elf-symbol name='compat_futex_noasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='create_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- create_call_rcu_data_memb -->
+    <elf-symbol name='create_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- defer_rcu_memb -->
+    <elf-symbol name='defer_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- free_all_cpu_call_rcu_data_memb -->
+    <elf-symbol name='free_all_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_data_memb -->
+    <elf-symbol name='get_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_call_rcu_thread_memb -->
+    <elf-symbol name='get_call_rcu_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_cpu_call_rcu_data_memb -->
+    <elf-symbol name='get_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_default_call_rcu_data_memb -->
+    <elf-symbol name='get_default_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- get_thread_call_rcu_data_memb -->
+    <elf-symbol name='get_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_barrier_memb -->
+    <elf-symbol name='rcu_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_cmpxchg_pointer_sym -->
+    <elf-symbol name='rcu_cmpxchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_memb -->
+    <elf-symbol name='rcu_defer_barrier_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_barrier_thread_memb -->
+    <elf-symbol name='rcu_defer_barrier_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_exit_memb -->
+    <elf-symbol name='rcu_defer_exit_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_register_thread_memb -->
+    <elf-symbol name='rcu_defer_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_defer_unregister_thread_memb -->
+    <elf-symbol name='rcu_defer_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_dereference_sym -->
+    <elf-symbol name='rcu_dereference_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_init_memb -->
+    <elf-symbol name='rcu_init_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_lock_memb -->
+    <elf-symbol name='rcu_read_lock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_ongoing_memb -->
+    <elf-symbol name='rcu_read_ongoing_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_read_unlock_memb -->
+    <elf-symbol name='rcu_read_unlock_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_register_thread_memb -->
+    <elf-symbol name='rcu_register_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_set_pointer_sym -->
+    <elf-symbol name='rcu_set_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_unregister_thread_memb -->
+    <elf-symbol name='rcu_unregister_thread_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_xchg_pointer_sym -->
+    <elf-symbol name='rcu_xchg_pointer_sym' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_cpu_call_rcu_data_memb -->
+    <elf-symbol name='set_cpu_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- set_thread_call_rcu_data_memb -->
+    <elf-symbol name='set_thread_call_rcu_data_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- synchronize_rcu_memb -->
+    <elf-symbol name='synchronize_rcu_memb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- __urcu_compat_futex_cond -->
+    <elf-symbol name='__urcu_compat_futex_cond' size='48' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- __urcu_compat_futex_lock -->
+    <elf-symbol name='__urcu_compat_futex_lock' size='40' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_flavor_memb -->
+    <elf-symbol name='rcu_flavor_memb' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_gp_memb -->
+    <elf-symbol name='rcu_gp_memb' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_has_sys_membarrier_memb -->
+    <elf-symbol name='rcu_has_sys_membarrier_memb' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- rcu_reader_memb -->
+    <elf-symbol name='rcu_reader_memb' size='256' type='tls-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='urcu.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char[40] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-2'>
+      <!-- <anonymous range>[40] -->
+      <subrange length='40' type-id='type-id-3' id='type-id-4'/>
+
+    </array-type-def>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <!-- long int -->
+    <type-decl name='long int' size-in-bits='64' id='type-id-6'/>
+    <!-- short int -->
+    <type-decl name='short int' size-in-bits='16' id='type-id-7'/>
+    <!-- unsigned int -->
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-8'/>
+    <!-- unsigned long int -->
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-9'/>
+    <!-- struct rcu_gp_memb -->
+    <class-decl name='rcu_gp_memb' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu/static/urcu.h' line='127' column='1' id='type-id-10'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_gp_memb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu.h' line='135' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int32_t rcu_gp_memb::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu/static/urcu.h' line='137' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __int32_t int32_t -->
+    <typedef-decl name='int32_t' type-id='type-id-12' filepath='/usr/include/bits/stdint-intn.h' line='26' column='1' id='type-id-11'/>
+    <!-- typedef int __int32_t -->
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='41' column='1' id='type-id-12'/>
+    <!-- struct rcu_reader_memb -->
+    <class-decl name='rcu_reader_memb' size-in-bits='2048' is-struct='yes' visibility='default' filepath='urcu/static/urcu.h' line='142' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned long int rcu_reader_memb::ctr -->
+        <var-decl name='ctr' type-id='type-id-3' visibility='default' filepath='urcu/static/urcu.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- char rcu_reader_memb::need_mb -->
+        <var-decl name='need_mb' type-id='type-id-1' visibility='default' filepath='urcu/static/urcu.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <!-- cds_list_head rcu_reader_memb::node -->
+        <var-decl name='node' type-id='type-id-14' visibility='default' filepath='urcu/static/urcu.h' line='147' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <!-- pthread_t rcu_reader_memb::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu/static/urcu.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <!-- unsigned int rcu_reader_memb::registered -->
+        <var-decl name='registered' type-id='type-id-8' visibility='default' filepath='urcu/static/urcu.h' line='150' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_list_head -->
+    <class-decl name='cds_list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu/list.h' line='35' column='1' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_list_head* cds_list_head::next -->
+        <var-decl name='next' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_list_head* cds_list_head::prev -->
+        <var-decl name='prev' type-id='type-id-16' visibility='default' filepath='./urcu/list.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef unsigned long int pthread_t -->
+    <typedef-decl name='pthread_t' type-id='type-id-3' filepath='/usr/include/bits/pthreadtypes.h' line='27' column='1' id='type-id-15'/>
+    <!-- struct rcu_flavor_struct -->
+    <class-decl name='rcu_flavor_struct' size-in-bits='768' is-struct='yes' visibility='default' filepath='./urcu-flavor.h' line='30' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- void ()* rcu_flavor_struct::read_lock -->
+        <var-decl name='read_lock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void ()* rcu_flavor_struct::read_unlock -->
+        <var-decl name='read_unlock' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int ()* rcu_flavor_struct::read_ongoing -->
+        <var-decl name='read_ongoing' type-id='type-id-19' visibility='default' filepath='./urcu-flavor.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- void ()* rcu_flavor_struct::read_quiescent_state -->
+        <var-decl name='read_quiescent_state' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- void (rcu_head*, void (rcu_head*)*)* rcu_flavor_struct::update_call_rcu -->
+        <var-decl name='update_call_rcu' type-id='type-id-20' visibility='default' filepath='./urcu-flavor.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- void ()* rcu_flavor_struct::update_synchronize_rcu -->
+        <var-decl name='update_synchronize_rcu' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <!-- void (void (void*)*, void*)* rcu_flavor_struct::update_defer_rcu -->
+        <var-decl name='update_defer_rcu' type-id='type-id-21' visibility='default' filepath='./urcu-flavor.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- void ()* rcu_flavor_struct::thread_offline -->
+        <var-decl name='thread_offline' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- void ()* rcu_flavor_struct::thread_online -->
+        <var-decl name='thread_online' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- void ()* rcu_flavor_struct::register_thread -->
+        <var-decl name='register_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- void ()* rcu_flavor_struct::unregister_thread -->
+        <var-decl name='unregister_thread' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- void ()* rcu_flavor_struct::barrier -->
+        <var-decl name='barrier' type-id='type-id-18' visibility='default' filepath='./urcu-flavor.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct rcu_head -->
+    <class-decl name='rcu_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./urcu-call-rcu.h' line='59' column='1' id='type-id-22'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node rcu_head::next -->
+        <var-decl name='next' type-id='type-id-23' visibility='default' filepath='./urcu-call-rcu.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- void (rcu_head*)* rcu_head::func -->
+        <var-decl name='func' type-id='type-id-24' visibility='default' filepath='./urcu-call-rcu.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_node -->
+    <class-decl name='cds_wfcq_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='59' column='1' id='type-id-23'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_node::next -->
+        <var-decl name='next' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='60' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct call_rcu_data -->
+    <class-decl name='call_rcu_data' size-in-bits='1024' is-struct='yes' visibility='default' filepath='urcu-call-rcu-impl.h' line='54' column='1' id='type-id-26'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_tail call_rcu_data::cbs_tail -->
+        <var-decl name='cbs_tail' type-id='type-id-27' visibility='default' filepath='urcu-call-rcu-impl.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- cds_wfcq_head call_rcu_data::cbs_head -->
+        <var-decl name='cbs_head' type-id='type-id-28' visibility='default' filepath='urcu-call-rcu-impl.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <!-- unsigned long int call_rcu_data::flags -->
+        <var-decl name='flags' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <!-- int32_t call_rcu_data::futex -->
+        <var-decl name='futex' type-id='type-id-11' visibility='default' filepath='urcu-call-rcu-impl.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <!-- unsigned long int call_rcu_data::qlen -->
+        <var-decl name='qlen' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <!-- pthread_t call_rcu_data::tid -->
+        <var-decl name='tid' type-id='type-id-15' visibility='default' filepath='urcu-call-rcu-impl.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <!-- int call_rcu_data::cpu_affinity -->
+        <var-decl name='cpu_affinity' type-id='type-id-5' visibility='default' filepath='urcu-call-rcu-impl.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <!-- unsigned long int call_rcu_data::gp_count -->
+        <var-decl name='gp_count' type-id='type-id-3' visibility='default' filepath='urcu-call-rcu-impl.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <!-- cds_list_head call_rcu_data::list -->
+        <var-decl name='list' type-id='type-id-14' visibility='default' filepath='urcu-call-rcu-impl.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_tail -->
+    <class-decl name='cds_wfcq_tail' size-in-bits='64' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='127' column='1' id='type-id-27'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node* cds_wfcq_tail::p -->
+        <var-decl name='p' type-id='type-id-25' visibility='default' filepath='urcu/wfcqueue.h' line='128' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct cds_wfcq_head -->
+    <class-decl name='cds_wfcq_head' size-in-bits='384' is-struct='yes' visibility='default' filepath='urcu/wfcqueue.h' line='72' column='1' id='type-id-28'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- cds_wfcq_node cds_wfcq_head::node -->
+        <var-decl name='node' type-id='type-id-23' visibility='default' filepath='urcu/wfcqueue.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- pthread_mutex_t cds_wfcq_head::lock -->
+        <var-decl name='lock' type-id='type-id-29' visibility='default' filepath='urcu/wfcqueue.h' line='74' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __anonymous_union__ pthread_mutex_t -->
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-30' filepath='/usr/include/bits/pthreadtypes.h' line='72' column='1' id='type-id-29'/>
+    <!-- union {__pthread_mutex_s __data; char __size[40]; long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='67' column='1' id='type-id-30'>
+      <data-member access='private'>
+        <!-- __pthread_mutex_s __data -->
+        <var-decl name='__data' type-id='type-id-31' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[40] -->
+        <var-decl name='__size' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long int __align -->
+        <var-decl name='__align' type-id='type-id-6' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_mutex_s -->
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='22' column='1' id='type-id-31'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int __pthread_mutex_s::__lock -->
+        <var-decl name='__lock' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __pthread_mutex_s::__count -->
+        <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- int __pthread_mutex_s::__owner -->
+        <var-decl name='__owner' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <!-- unsigned int __pthread_mutex_s::__nusers -->
+        <var-decl name='__nusers' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- int __pthread_mutex_s::__kind -->
+        <var-decl name='__kind' type-id='type-id-5' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <!-- short int __pthread_mutex_s::__spins -->
+        <var-decl name='__spins' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <!-- short int __pthread_mutex_s::__elision -->
+        <var-decl name='__elision' type-id='type-id-7' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- __pthread_list_t __pthread_mutex_s::__list -->
+        <var-decl name='__list' type-id='type-id-32' visibility='default' filepath='/usr/include/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef __pthread_internal_list __pthread_list_t -->
+    <typedef-decl name='__pthread_list_t' type-id='type-id-33' filepath='/usr/include/bits/thread-shared-types.h' line='53' column='1' id='type-id-32'/>
+    <!-- struct __pthread_internal_list -->
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='49' column='1' id='type-id-33'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__prev -->
+        <var-decl name='__prev' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __pthread_internal_list* __pthread_internal_list::__next -->
+        <var-decl name='__next' type-id='type-id-34' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- __pthread_internal_list* -->
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
+    <!-- call_rcu_data* -->
+    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-35'/>
+    <!-- cds_list_head* -->
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-16'/>
+    <!-- cds_wfcq_node* -->
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-25'/>
+    <!-- const rcu_flavor_struct -->
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-36'/>
+    <!-- int ()* -->
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-19'/>
+    <!-- rcu_head* -->
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-38'/>
+    <!-- void ()* -->
+    <pointer-type-def type-id='type-id-39' size-in-bits='64' id='type-id-18'/>
+    <!-- void (rcu_head*)* -->
+    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-24'/>
+    <!-- void (rcu_head*, void (rcu_head*)*)* -->
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-20'/>
+    <!-- void (void (void*)*, void*)* -->
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-21'/>
+    <!-- void (void*)* -->
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-44'/>
+    <!-- void* -->
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-45'/>
+    <!-- int rcu_has_sys_membarrier_memb -->
+    <var-decl name='rcu_has_sys_membarrier_memb' type-id='type-id-5' mangled-name='rcu_has_sys_membarrier_memb' visibility='default' filepath='urcu/static/urcu.h' line='93' column='1' elf-symbol-id='rcu_has_sys_membarrier_memb'/>
+    <!-- rcu_gp_memb rcu_gp_memb -->
+    <var-decl name='rcu_gp_memb' type-id='type-id-10' mangled-name='rcu_gp_memb' visibility='default' filepath='urcu/static/urcu.h' line='140' column='1' elf-symbol-id='rcu_gp_memb'/>
+    <!-- rcu_reader_memb rcu_reader_memb -->
+    <var-decl name='rcu_reader_memb' type-id='type-id-13' mangled-name='rcu_reader_memb' visibility='default' filepath='urcu/static/urcu.h' line='153' column='1' elf-symbol-id='rcu_reader_memb'/>
+    <!-- const rcu_flavor_struct rcu_flavor_memb -->
+    <var-decl name='rcu_flavor_memb' type-id='type-id-36' mangled-name='rcu_flavor_memb' visibility='default' filepath='./urcu-flavor.h' line='64' column='1' elf-symbol-id='rcu_flavor_memb'/>
+    <!-- void rcu_defer_exit_memb() -->
+    <function-decl name='rcu_defer_exit_memb' mangled-name='rcu_defer_exit_memb' filepath='urcu-defer-impl.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_exit_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_unregister_thread_memb() -->
+    <function-decl name='rcu_defer_unregister_thread_memb' mangled-name='rcu_defer_unregister_thread_memb' filepath='urcu-defer-impl.h' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_defer_register_thread_memb() -->
+    <function-decl name='rcu_defer_register_thread_memb' mangled-name='rcu_defer_register_thread_memb' filepath='urcu-defer-impl.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_register_thread_memb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void defer_rcu_memb(void (void*)*, void*) -->
+    <function-decl name='defer_rcu_memb' mangled-name='defer_rcu_memb' filepath='urcu-defer-impl.h' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='defer_rcu_memb'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44' name='fct' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-defer-impl.h' line='395' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_memb() -->
+    <function-decl name='rcu_defer_barrier_memb' mangled-name='rcu_defer_barrier_memb' filepath='urcu-defer-impl.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_defer_barrier_thread_memb() -->
+    <function-decl name='rcu_defer_barrier_thread_memb' mangled-name='rcu_defer_barrier_thread_memb' filepath='urcu-defer-impl.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_defer_barrier_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_child_memb() -->
+    <function-decl name='call_rcu_after_fork_child_memb' mangled-name='call_rcu_after_fork_child_memb' filepath='urcu-call-rcu-impl.h' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_child_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_after_fork_parent_memb() -->
+    <function-decl name='call_rcu_after_fork_parent_memb' mangled-name='call_rcu_after_fork_parent_memb' filepath='urcu-call-rcu-impl.h' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_after_fork_parent_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_before_fork_memb() -->
+    <function-decl name='call_rcu_before_fork_memb' mangled-name='call_rcu_before_fork_memb' filepath='urcu-call-rcu-impl.h' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_before_fork_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_barrier_memb() -->
+    <function-decl name='rcu_barrier_memb' mangled-name='rcu_barrier_memb' filepath='urcu-call-rcu-impl.h' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void free_all_cpu_call_rcu_data_memb() -->
+    <function-decl name='free_all_cpu_call_rcu_data_memb' mangled-name='free_all_cpu_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_all_cpu_call_rcu_data_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_data_free_memb(call_rcu_data*) -->
+    <function-decl name='call_rcu_data_free_memb' mangled-name='call_rcu_data_free_memb' filepath='urcu-call-rcu-impl.h' line='743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_data_free_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='743' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void call_rcu_memb(rcu_head*, void (rcu_head*)*) -->
+    <function-decl name='call_rcu_memb' mangled-name='call_rcu_memb' filepath='urcu-call-rcu-impl.h' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_memb'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38' name='head' filepath='urcu-call-rcu-impl.h' line='705' column='1'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24' name='func' filepath='urcu-call-rcu-impl.h' line='706' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int create_all_cpu_call_rcu_data_memb(unsigned long int) -->
+    <function-decl name='create_all_cpu_call_rcu_data_memb' mangled-name='create_all_cpu_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_all_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='627' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void set_thread_call_rcu_data_memb(call_rcu_data*) -->
+    <function-decl name='set_thread_call_rcu_data_memb' mangled-name='set_thread_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_thread_call_rcu_data_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='614' column='1'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- call_rcu_data* get_thread_call_rcu_data_memb() -->
+    <function-decl name='get_thread_call_rcu_data_memb' mangled-name='get_thread_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thread_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_call_rcu_data_memb() -->
+    <function-decl name='get_call_rcu_data_memb' mangled-name='get_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- call_rcu_data* get_default_call_rcu_data_memb() -->
+    <function-decl name='get_default_call_rcu_data_memb' mangled-name='get_default_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_default_call_rcu_data_memb'>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- int set_cpu_call_rcu_data_memb(int, call_rcu_data*) -->
+    <function-decl name='set_cpu_call_rcu_data_memb' mangled-name='set_cpu_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='514' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- call_rcu_data* create_call_rcu_data_memb(unsigned long int, int) -->
+    <function-decl name='create_call_rcu_data_memb' mangled-name='create_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_call_rcu_data_memb'>
+      <!-- parameter of type 'unsigned long int' -->
+      <parameter type-id='type-id-3' name='flags' filepath='urcu-call-rcu-impl.h' line='490' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu_affinity' filepath='urcu-call-rcu-impl.h' line='491' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- pthread_t get_call_rcu_thread_memb(call_rcu_data*) -->
+    <function-decl name='get_call_rcu_thread_memb' mangled-name='get_call_rcu_thread_memb' filepath='urcu-call-rcu-impl.h' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_call_rcu_thread_memb'>
+      <!-- parameter of type 'call_rcu_data*' -->
+      <parameter type-id='type-id-35' name='crdp' filepath='urcu-call-rcu-impl.h' line='472' column='1'/>
+      <!-- typedef pthread_t -->
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <!-- call_rcu_data* get_cpu_call_rcu_data_memb(int) -->
+    <function-decl name='get_cpu_call_rcu_data_memb' mangled-name='get_cpu_call_rcu_data_memb' filepath='urcu-call-rcu-impl.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_call_rcu_data_memb'>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='cpu' filepath='urcu-call-rcu-impl.h' line='450' column='1'/>
+      <!-- call_rcu_data* -->
+      <return type-id='type-id-35'/>
+    </function-decl>
+    <!-- void rcu_init_memb() -->
+    <function-decl name='rcu_init_memb' mangled-name='rcu_init_memb' filepath='urcu.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_init_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_unregister_thread_memb() -->
+    <function-decl name='rcu_unregister_thread_memb' mangled-name='rcu_unregister_thread_memb' filepath='urcu.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unregister_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_register_thread_memb() -->
+    <function-decl name='rcu_register_thread_memb' mangled-name='rcu_register_thread_memb' filepath='urcu.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_register_thread_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int rcu_read_ongoing_memb() -->
+    <function-decl name='rcu_read_ongoing_memb' mangled-name='rcu_read_ongoing_memb' filepath='urcu.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_ongoing_memb'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- void rcu_read_unlock_memb() -->
+    <function-decl name='rcu_read_unlock_memb' mangled-name='rcu_read_unlock_memb' filepath='urcu.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void rcu_read_lock_memb() -->
+    <function-decl name='rcu_read_lock_memb' mangled-name='rcu_read_lock_memb' filepath='urcu.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_lock_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- void synchronize_rcu_memb() -->
+    <function-decl name='synchronize_rcu_memb' mangled-name='synchronize_rcu_memb' filepath='urcu.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_memb'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <!-- int () -->
+    <function-type size-in-bits='64' id='type-id-37'>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-type>
+    <!-- void () -->
+    <function-type size-in-bits='64' id='type-id-39'>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*) -->
+    <function-type size-in-bits='64' id='type-id-40'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (rcu_head*, void (rcu_head*)*) -->
+    <function-type size-in-bits='64' id='type-id-41'>
+      <!-- parameter of type 'rcu_head*' -->
+      <parameter type-id='type-id-38'/>
+      <!-- parameter of type 'void (rcu_head*)*' -->
+      <parameter type-id='type-id-24'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void (void*)*, void*) -->
+    <function-type size-in-bits='64' id='type-id-42'>
+      <!-- parameter of type 'void (void*)*' -->
+      <parameter type-id='type-id-44'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+    <!-- void (void*) -->
+    <function-type size-in-bits='64' id='type-id-43'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45'/>
+      <!-- void -->
+      <return type-id='type-id-9'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='urcu-pointer.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+    <!-- void** -->
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-46'/>
+    <!-- void* rcu_cmpxchg_pointer_sym(void**, void*, void*) -->
+    <function-decl name='rcu_cmpxchg_pointer_sym' mangled-name='rcu_cmpxchg_pointer_sym' filepath='urcu-pointer.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_cmpxchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='old' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='_new' filepath='urcu-pointer.c' line='53' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_xchg_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_xchg_pointer_sym' mangled-name='rcu_xchg_pointer_sym' filepath='urcu-pointer.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_xchg_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='47' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_set_pointer_sym(void**, void*) -->
+    <function-decl name='rcu_set_pointer_sym' mangled-name='rcu_set_pointer_sym' filepath='urcu-pointer.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_set_pointer_sym'>
+      <!-- parameter of type 'void**' -->
+      <parameter type-id='type-id-46' name='p' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='v' filepath='urcu-pointer.c' line='40' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+    <!-- void* rcu_dereference_sym(void*) -->
+    <function-decl name='rcu_dereference_sym' mangled-name='rcu_dereference_sym' filepath='urcu-pointer.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_dereference_sym'>
+      <!-- parameter of type 'void*' -->
+      <parameter type-id='type-id-45' name='p' filepath='urcu-pointer.c' line='35' column='1'/>
+      <!-- void* -->
+      <return type-id='type-id-45'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='compat_futex.c' comp-dir-path='/home/mjeanson/Git/lttng/userspace-rcu/stable-0.9' language='LANG_C99'>
+
+
+    <!-- char[48] -->
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-47'>
+      <!-- <anonymous range>[48] -->
+      <subrange length='48' type-id='type-id-3' id='type-id-48'/>
+
+    </array-type-def>
+    <!-- long long int -->
+    <type-decl name='long long int' size-in-bits='64' id='type-id-49'/>
+    <!-- long long unsigned int -->
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-50'/>
+    <!-- unsigned int[2] -->
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='64' id='type-id-51'>
+      <!-- <anonymous range>[2] -->
+      <subrange length='2' type-id='type-id-3' id='type-id-52'/>
+
+    </array-type-def>
+    <!-- typedef __anonymous_union__ pthread_cond_t -->
+    <typedef-decl name='pthread_cond_t' type-id='type-id-53' filepath='/usr/include/bits/pthreadtypes.h' line='80' column='1' id='type-id-54'/>
+    <!-- union {__pthread_cond_s __data; char __size[48]; long long int __align;} -->
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='75' column='1' id='type-id-53'>
+      <data-member access='private'>
+        <!-- __pthread_cond_s __data -->
+        <var-decl name='__data' type-id='type-id-55' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- char __size[48] -->
+        <var-decl name='__size' type-id='type-id-47' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- long long int __align -->
+        <var-decl name='__align' type-id='type-id-49' visibility='default' filepath='/usr/include/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct __pthread_cond_s -->
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='92' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+        <var-decl name='' type-id='type-id-56' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <!-- unsigned int __pthread_cond_s::__g_refs[2] -->
+        <var-decl name='__g_refs' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <!-- unsigned int __pthread_cond_s::__g_size[2] -->
+        <var-decl name='__g_size' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <!-- unsigned int __pthread_cond_s::__g1_orig_size -->
+        <var-decl name='__g1_orig_size' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <!-- unsigned int __pthread_cond_s::__wrefs -->
+        <var-decl name='__wrefs' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <!-- unsigned int __pthread_cond_s::__g_signals[2] -->
+        <var-decl name='__g_signals' type-id='type-id-51' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- union {long long unsigned int __wseq; struct {unsigned int __low; unsigned int __high;} __wseq32;} -->
+    <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='94' column='1' id='type-id-56'>
+      <data-member access='private'>
+        <!-- long long unsigned int __wseq -->
+        <var-decl name='__wseq' type-id='type-id-50' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <!-- struct {unsigned int __low; unsigned int __high;} __wseq32 -->
+        <var-decl name='__wseq32' type-id='type-id-57' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- struct {unsigned int __low; unsigned int __high;} -->
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='97' column='1' id='type-id-57'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- unsigned int __low -->
+        <var-decl name='__low' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <!-- unsigned int __high -->
+        <var-decl name='__high' type-id='type-id-8' visibility='default' filepath='/usr/include/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct timespec -->
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='10' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- __time_t timespec::tv_sec -->
+        <var-decl name='tv_sec' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <!-- __syscall_slong_t timespec::tv_nsec -->
+        <var-decl name='tv_nsec' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef long int __time_t -->
+    <typedef-decl name='__time_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='160' column='1' id='type-id-59'/>
+    <!-- typedef long int __syscall_slong_t -->
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='197' column='1' id='type-id-60'/>
+    <!-- const timespec -->
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-61'/>
+    <!-- const timespec* -->
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-62'/>
+    <!-- int32_t* -->
+    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-63'/>
+    <!-- pthread_mutex_t __urcu_compat_futex_lock -->
+    <var-decl name='__urcu_compat_futex_lock' type-id='type-id-29' mangled-name='__urcu_compat_futex_lock' visibility='default' filepath='compat_futex.c' line='44' column='1' elf-symbol-id='__urcu_compat_futex_lock'/>
+    <!-- pthread_cond_t __urcu_compat_futex_cond -->
+    <var-decl name='__urcu_compat_futex_cond' type-id='type-id-54' mangled-name='__urcu_compat_futex_cond' visibility='default' filepath='compat_futex.c' line='46' column='1' elf-symbol-id='__urcu_compat_futex_cond'/>
+    <!-- int compat_futex_async(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_async' mangled-name='compat_futex_async' filepath='compat_futex.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_async'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='118' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='119' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <!-- int compat_futex_noasync(int32_t*, int, int32_t, const timespec*, int32_t*, int32_t) -->
+    <function-decl name='compat_futex_noasync' mangled-name='compat_futex_noasync' filepath='compat_futex.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_futex_noasync'>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-5' name='op' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val' filepath='compat_futex.c' line='54' column='1'/>
+      <!-- parameter of type 'const timespec*' -->
+      <parameter type-id='type-id-62' name='timeout' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'int32_t*' -->
+      <parameter type-id='type-id-63' name='uaddr2' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- parameter of type 'typedef int32_t' -->
+      <parameter type-id='type-id-11' name='val3' filepath='compat_futex.c' line='55' column='1'/>
+      <!-- int -->
+      <return type-id='type-id-5'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/extras/abi/README b/extras/abi/README
new file mode 100644 (file)
index 0000000..a74ec1b
--- /dev/null
@@ -0,0 +1,13 @@
+This directory contains the serialized ABI definitions for a typical build of
+the liburcu librairies. This information is extracted using libabigail
+(https://sourceware.org/libabigail/).
+
+The artefacts used to generate these were built with CFLAGS="-O0 -ggdb".
+
+You can compare the serialized ABI with a shared object to check for breaking
+changes. For example, here we compare an in-tree built version of
+liburcu-memb.so with the serialized ABI of stable-0.13 :
+
+  abidiff \
+    extras/abi/0.13/x86_64-pc-linux-gnu/liburcu-memb.so.7.xml \
+    src/.libs/liburcu-memb.so
diff --git a/extras/abi/dump_abi.sh b/extras/abi/dump_abi.sh
new file mode 100755 (executable)
index 0000000..e8aedcb
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0-only
+
+set -eu
+
+INDIR=$1
+OUTDIR=$2
+
+ARGS=(
+       "--annotate" # Add comments to the xml output
+       "--no-corpus-path" # Do not put the path in the abi-corpus
+)
+
+for lib in "${INDIR}"/liburcu*.so.?
+do
+       abidw "${ARGS[@]}" --out-file "${OUTDIR}/$(basename "$lib").xml" "$lib"
+
+       # Clean the full paths
+       sed -i "s#$(pwd)/##g" "${OUTDIR}/$(basename "$lib").xml"
+done
+
This page took 0.398581 seconds and 4 git commands to generate.