symtab: Add support for MODVERSIONS (CRC checksums)

The Linux Kernel has a mechanism (MODVERSIONS) to checksum symbols based
on their type. In a way similar to what libabigail does, but different.
The CRC values for symbols can be extracted from the symtab either by
following the __kcrctab_<symbol> entry or by using the __crc_<symbol>
value directly.

This patch adds support for extracting those CRC values and storing them
as a property of elf_symbol. Subsequently, 'crc' gets emitted as an
attribute of 'elf-symbol' in the XML representation.

CRC comparisons are also added to the abidiff machinery such that if
both representations of a comparison contain a CRC value, they will be
compared and if any of the values is unset (i.e. == 0), equality is
assumed. Differences will be reported in the format that the Kernel
presents them e.g. via Module.symvers. It is likely, but not necessary,
that a CRC difference comes along with an ABI difference reported by
libabigail. Not everything that leads to a change of the CRC value an
ABI breakage in the libabigail sense.

In case a function or variable symbol changes in a harmless way, we
would previously also consider a CRC change harmless (or more precise:
not harmful). Explicitly testing for CRC changes when analyzing whether
diff nodes need to be considered harmful, allows to still classify them
harmful.

Also add some test cases to ensure reading CRC values from kernel
binaries works as expected. The empty-report files have been
consolidated to one file: empty-report.txt. That also clarifies the
expected outcome for the affected tests.

	* include/abg-ir.h (elf_symbol::elf_symbol): Add CRC parameter.
	(elf_symbol::create): Likewise.
	(elf_symbol::get_crc): New member method.
	(elf_symbol::set_crc): New member method.
	* src/abg-comp-filter.cc (crc_changed): New function.
	(categorize_harmful_diff_node): Also test for CRC changes.
	* src/abg-ir.cc (elf_symbol::priv::crc_): New data member.
	* src/abg-ir.cc (elf_symbol::priv::priv): Add CRC parameter.
	(elf_symbol::elf_symbol): Likewise.
	(elf_symbol::create): Likewise.
	(elf_symbol::textually_equals): Add CRC support.
	(elf_symbol::get_crc): New member method.
	(elf_symbol::set_crc): New member method.
	* src/abg-reader.cc (build_elf_symbol): Add CRC support.
	* src/abg-reporter-priv.cc (maybe_report_diff_for_symbol): Likewise.
	* src/abg-symtab-reader.cc (symtab::load): Likewise.
	* src/abg-writer.cc (write_elf_symbol): Likewise.
	* tests/data/Makefile.am: Add new test data files.
	* tests/data/test-abidiff-exit/test-crc-report.txt: New test file.
	* tests/data/test-abidiff-exit/test-crc-v0.abi: Likewise.
	* tests/data/test-abidiff-exit/test-crc-v1.abi: Likewise.
	* tests/data/test-abidiff/empty-report.txt: New file.
	* tests/data/test-abidiff/test-PR18166-libtirpc.so.report.txt: Deleted.
	* tests/data/test-abidiff/test-PR24552-report0.txt: Deleted.
	* tests/data/test-abidiff/test-crc-0.xml: New test file.
	* tests/data/test-abidiff/test-crc-1.xml: Likewise.
	* tests/data/test-abidiff/test-crc-2.xml: Likewise.
	* tests/data/test-abidiff/test-crc-report.txt: Likewise.
	* tests/data/test-abidiff/test-empty-corpus-report.txt: Deleted.
	* tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Add CRC values.
	* tests/data/test-read-write/test-crc.xml: New test data file.
	* tests/data/test-symtab/kernel-modversions/Makefile: New test source.
	* tests/data/test-symtab/kernel-modversions/one_of_each.c: Likewise.
	* tests/data/test-symtab/kernel-modversions/one_of_each.ko: Likewise.
	* tests/test-abidiff-exit.cc: Add new test case.
	* tests/test-abidiff.cc: Add new test case.
	* tests/test-read-write.cc: Likewise.
	* tests/test-symtab.cc (Symtab::KernelSymtabsWithCRC): New test case.

Reviewed-by: Giuliano Procida <gprocida@google.com>
Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
Signed-off-by: Matthias Maennich <maennich@google.com>
diff --git a/include/abg-ir.h b/include/abg-ir.h
index 197f266..62c9440 100644
--- a/include/abg-ir.h
+++ b/include/abg-ir.h
@@ -844,6 +844,7 @@
 	     visibility		vi,
 	     bool		is_linux_string_cst = false,
 	     bool		is_in_ksymtab = false,
+	     uint64_t		crc = 0,
 	     bool		is_suppressed = false);
 
   elf_symbol(const elf_symbol&);
@@ -869,6 +870,7 @@
 	 visibility	    vi,
 	 bool		    is_linux_string_cst = false,
 	 bool		    is_in_ksymtab = false,
+	 uint64_t	    crc = 0,
 	 bool		    is_suppressed = false);
 
   const environment*
@@ -943,6 +945,12 @@
   void
   set_is_in_ksymtab(bool is_in_ksymtab);
 
+  uint64_t
+  get_crc() const;
+
+  void
+  set_crc(uint64_t crc);
+
   bool
   is_suppressed() const;
 
diff --git a/src/abg-comp-filter.cc b/src/abg-comp-filter.cc
index 8824ec6..5625127 100644
--- a/src/abg-comp-filter.cc
+++ b/src/abg-comp-filter.cc
@@ -218,6 +218,42 @@
   return false;
 }
 
+/// Test if there was a function or variable CRC change.
+///
+/// @param f the first function or variable to consider.
+///
+/// @param s the second function or variable to consider.
+///
+/// @return true if the test is positive, false otherwise.
+template <typename function_or_var_decl_sptr>
+static bool
+crc_changed(const function_or_var_decl_sptr& f,
+	    const function_or_var_decl_sptr& s)
+{
+  const auto symbol_f  = f->get_symbol(), symbol_s = s->get_symbol();
+  if (!symbol_f || !symbol_s)
+    return false;
+  const auto crc_f = symbol_f->get_crc(), crc_s = symbol_s->get_crc();
+  return (crc_f != 0 && crc_s != 0 && crc_f != crc_s);
+}
+
+/// Test if the current diff tree node carries a CRC change in either a
+/// function or a variable.
+///
+/// @param diff the diff tree node to consider.
+///
+/// @return true if the test is positive, false otherwise.
+static bool
+crc_changed(const diff* diff)
+{
+  if (const function_decl_diff* d =
+	dynamic_cast<const function_decl_diff*>(diff))
+    return crc_changed(d->first_function_decl(), d->second_function_decl());
+  if (const var_diff* d = dynamic_cast<const var_diff*>(diff))
+    return crc_changed(d->first_var(), d->second_var());
+  return false;
+}
+
 /// Test if there was a function name change, but there there was no
 /// change in name of the underlying symbol.  IOW, if the name of a
 /// function changed, but the symbol of the new function is equal to
@@ -1744,7 +1780,8 @@
 	      || non_static_data_member_type_size_changed(f, s)
 	      || non_static_data_member_added_or_removed(d)
 	      || base_classes_added_or_removed(d)
-	      || has_harmful_enum_change(d)))
+	      || has_harmful_enum_change(d)
+	      || crc_changed(d)))
 	category |= SIZE_OR_OFFSET_CHANGE_CATEGORY;
 
       if (has_virtual_mem_fn_change(d))
diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 923743e..2ad7910 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -11,6 +11,7 @@
 
 #include <cxxabi.h>
 #include <algorithm>
+#include <cstdint>
 #include <functional>
 #include <iterator>
 #include <memory>
@@ -1317,6 +1318,7 @@
   bool			is_common_;
   bool			is_linux_string_cst_;
   bool			is_in_ksymtab_;
+  uint64_t		crc_;
   bool			is_suppressed_;
   elf_symbol_wptr	main_symbol_;
   elf_symbol_wptr	next_alias_;
@@ -1334,6 +1336,7 @@
       is_common_(false),
       is_linux_string_cst_(false),
       is_in_ksymtab_(false),
+      crc_(0),
       is_suppressed_(false)
   {}
 
@@ -1349,6 +1352,7 @@
        elf_symbol::visibility	  vi,
        bool			  is_linux_string_cst,
        bool			  is_in_ksymtab,
+       uint64_t			  crc,
        bool			  is_suppressed)
     : env_(e),
       index_(i),
@@ -1362,6 +1366,7 @@
       is_common_(c),
       is_linux_string_cst_(is_linux_string_cst),
       is_in_ksymtab_(is_in_ksymtab),
+      crc_(crc),
       is_suppressed_(is_suppressed)
   {
     if (!is_common_)
@@ -1408,6 +1413,8 @@
 ///
 /// @param is_linux_string_cst true if the symbol is a Linux Kernel
 /// string constant defined in the __ksymtab_strings section.
+///
+/// @param crc the CRC (modversions) value of Linux Kernel symbols
 elf_symbol::elf_symbol(const environment* e,
 		       size_t		  i,
 		       size_t		  s,
@@ -1420,6 +1427,7 @@
 		       visibility	  vi,
 		       bool		  is_linux_string_cst,
 		       bool		  is_in_ksymtab,
+		       uint64_t		  crc,
 		       bool		  is_suppressed)
   : priv_(new priv(e,
 		   i,
@@ -1433,6 +1441,7 @@
 		   vi,
 		   is_linux_string_cst,
 		   is_in_ksymtab,
+		   crc,
 		   is_suppressed))
 {}
 
@@ -1477,6 +1486,8 @@
 /// @param is_linux_string_cst if true, it means the symbol represents
 /// a string constant from a linux kernel binary.
 ///
+/// @param crc the CRC (modversions) value of Linux Kernel symbols
+///
 /// @return a (smart) pointer to a newly created instance of @ref
 /// elf_symbol.
 elf_symbol_sptr
@@ -1492,11 +1503,12 @@
 		   visibility	      vi,
 		   bool		      is_linux_string_cst,
 		   bool		      is_in_ksymtab,
+		   uint64_t	      crc,
 		   bool		      is_suppressed)
 {
   elf_symbol_sptr sym(new elf_symbol(e, i, s, n, t, b, d, c, ve, vi,
 				     is_linux_string_cst,
-				     is_in_ksymtab, is_suppressed));
+				     is_in_ksymtab, crc, is_suppressed));
   sym->priv_->main_symbol_ = sym;
   return sym;
 }
@@ -1517,7 +1529,9 @@
 		 && l.is_public() == r.is_public()
 		 && l.is_defined() == r.is_defined()
 		 && l.is_common_symbol() == r.is_common_symbol()
-		 && l.get_version() == r.get_version());
+		 && l.get_version() == r.get_version()
+		 && (l.get_crc() == 0 || r.get_crc() == 0
+		     || l.get_crc() == r.get_crc()));
 
   if (equals && l.is_variable())
     // These are variable symbols.  Let's compare their symbol size.
@@ -1732,6 +1746,20 @@
 elf_symbol::set_is_in_ksymtab(bool is_in_ksymtab)
 {priv_->is_in_ksymtab_ = is_in_ksymtab;}
 
+/// Getter of the 'crc' property.
+///
+/// @return the CRC (modversions) value for Linux Kernel symbols (if present)
+uint64_t
+elf_symbol::get_crc() const
+{return priv_->crc_;}
+
+/// Setter of the 'crc' property.
+///
+/// @param crc the new CRC (modversions) value for Linux Kernel symbols
+void
+elf_symbol::set_crc(uint64_t crc)
+{priv_->crc_ = crc;}
+
 /// Getter for the 'is-suppressed' property.
 ///
 /// @return true iff the current symbol has been suppressed by a
diff --git a/src/abg-reader.cc b/src/abg-reader.cc
index 56e07a9..f40e3d2 100644
--- a/src/abg-reader.cc
+++ b/src/abg-reader.cc
@@ -2796,6 +2796,10 @@
 	is_default_version = true;
     }
 
+  uint64_t crc = 0;
+  if (xml_char_sptr s = XML_NODE_GET_ATTRIBUTE(node, "crc"))
+    crc = strtoull(CHAR_STR(s), NULL, 0);
+
   elf_symbol::type type = elf_symbol::NOTYPE_TYPE;
   read_elf_symbol_type(node, type);
 
@@ -2819,6 +2823,10 @@
 					 /*is_linux_string_cst=*/false);
 
   e->set_is_suppressed(is_suppressed);
+
+  if (crc != 0)
+    e->set_crc(crc);
+
   return e;
 }
 
diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
index 396f95c..3091f6c 100644
--- a/src/abg-reporter-priv.cc
+++ b/src/abg-reporter-priv.cc
@@ -42,8 +42,7 @@
     out << std::hex << std::showbase ;
   else
     out << std::dec;
-  out << value;
-  out << std::dec << std::noshowbase;
+  out << value << std::dec << std::noshowbase;
 }
 
 /// Convert a bits value into a byte value if the current diff context
@@ -1188,6 +1187,21 @@
       reported = true;
     }
 
+  if (symbol1->get_crc() != 0 && symbol2->get_crc() != 0
+      && symbol1->get_crc() != symbol2->get_crc())
+    {
+      if (reported)
+	out << ",\n" << indent << "its CRC (modversions) changed from ";
+      else
+	out << "\n" << indent << "CRC value (modversions) changed from ";
+
+      out << std::showbase << std::hex
+	  << symbol1->get_crc() << " to " << symbol2->get_crc()
+	  << std::noshowbase << std::dec;
+
+      reported = true;
+    }
+
   if (reported)
     out << "\n";
 
diff --git a/src/abg-symtab-reader.cc b/src/abg-symtab-reader.cc
index 9dc8d3d..edc9d82 100644
--- a/src/abg-symtab-reader.cc
+++ b/src/abg-symtab-reader.cc
@@ -12,6 +12,7 @@
 
 #include <algorithm>
 #include <iostream>
+#include <unordered_map>
 #include <unordered_set>
 
 #include "abg-elf-helpers.h"
@@ -233,6 +234,7 @@
 
   const bool is_kernel = elf_helpers::is_linux_kernel(elf_handle);
   std::unordered_set<std::string> exported_kernel_symbols;
+  std::unordered_map<std::string, uint64_t> crc_values;
 
   const bool is_arm32 = elf_helpers::architecture_is_arm32(elf_handle);
   const bool is_ppc64 = elf_helpers::architecture_is_ppc64(elf_handle);
@@ -281,6 +283,11 @@
 	  ABG_ASSERT(exported_kernel_symbols.insert(name.substr(10)).second);
 	  continue;
 	}
+      if (is_kernel && name.rfind("__crc_", 0) == 0)
+	{
+	  ABG_ASSERT(crc_values.emplace(name.substr(6), sym->st_value).second);
+	  continue;
+	}
 
       // filter out uninteresting entries and only keep functions/variables for
       // now. The rest might be interesting in the future though.
@@ -384,6 +391,17 @@
       has_ksymtab_entries_ = true;
     }
 
+  // Now add the CRC values
+  for (const auto& crc_entry : crc_values)
+    {
+      const auto r = name_symbol_map_.find(crc_entry.first);
+      if (r == name_symbol_map_.end())
+	continue;
+
+      for (const auto& symbol : r->second)
+	symbol->set_crc(crc_entry.second);
+    }
+
   // sort the symbols for deterministic output
   std::sort(symbols_.begin(), symbols_.end(), symbol_sort);
 
diff --git a/src/abg-writer.cc b/src/abg-writer.cc
index cabf27e..f9cae69 100644
--- a/src/abg-writer.cc
+++ b/src/abg-writer.cc
@@ -15,6 +15,7 @@
 #include <algorithm>
 #include <fstream>
 #include <iomanip>
+#include <ios>
 #include <iostream>
 #include <memory>
 #include <sstream>
@@ -3056,6 +3057,11 @@
   if (sym->is_common_symbol())
     o << " is-common='yes'";
 
+  if (sym->get_crc() != 0)
+    o << " crc='"
+      << std::hex << std::showbase << sym->get_crc() << "'"
+      << std::dec << std::noshowbase;
+
   o << "/>\n";
 
   return true;
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 6fa5f92..53faec6 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -35,6 +35,7 @@
 test-read-write/test28-drop-std-vars.abignore \
 test-read-write/test28-without-std-vars-ref.xml \
 test-read-write/test28-without-std-vars.xml \
+test-read-write/test-crc.xml \
 \
 test-write-read-archive/test0.xml \
 test-write-read-archive/test1.xml \
@@ -57,6 +58,7 @@
 test-core-diff/report12.txt \
 test-core-diff/report13.txt \
 \
+test-abidiff/empty-report.txt			\
 test-abidiff/test-enum0-v0.cc.bi		\
 test-abidiff/test-enum0-v1.cc.bi		\
 test-abidiff/test-enum0-report.txt		\
@@ -77,17 +79,18 @@
 test-abidiff/test-var0-report.txt	\
 test-abidiff/test-PR18166-libtirpc.so \
 test-abidiff/test-PR18166-libtirpc.so.abi \
-test-abidiff/test-PR18166-libtirpc.so.report.txt \
 test-abidiff/test-PR18791-report0.txt   \
 test-abidiff/test-PR18791-v0.so.abi     \
 test-abidiff/test-PR18791-v1.so.abi     \
-test-abidiff/test-PR24552-report0.txt	\
 test-abidiff/test-PR24552-v0.abi	\
 test-abidiff/test-PR24552-v1.abi	\
 test-abidiff/test-empty-corpus-0.xml		\
 test-abidiff/test-empty-corpus-1.xml		\
 test-abidiff/test-empty-corpus-2.xml		\
-test-abidiff/test-empty-corpus-report.txt	\
+test-abidiff/test-crc-0.xml \
+test-abidiff/test-crc-1.xml \
+test-abidiff/test-crc-2.xml \
+test-abidiff/test-crc-report.txt \
 \
 test-abidiff-exit/test1-voffset-change-report0.txt \
 test-abidiff-exit/test1-voffset-change-report1.txt \
@@ -197,6 +200,9 @@
 test-abidiff-exit/test-non-leaf-array-v1.c \
 test-abidiff-exit/test-non-leaf-array-v1.o \
 test-abidiff-exit/test-non-leaf-array-report.txt \
+test-abidiff-exit/test-crc-report.txt \
+test-abidiff-exit/test-crc-v0.abi \
+test-abidiff-exit/test-crc-v1.abi \
 test-abidiff-exit/test-missing-alias-report.txt \
 test-abidiff-exit/test-missing-alias.abi \
 test-abidiff-exit/test-missing-alias.suppr \
@@ -1984,4 +1990,7 @@
 test-symtab/kernel-5.6/single_variable.c \
 test-symtab/kernel-5.6/single_variable.ko \
 test-symtab/kernel-5.6/single_variable_gpl.c \
-test-symtab/kernel-5.6/single_variable_gpl.ko
+test-symtab/kernel-5.6/single_variable_gpl.ko \
+test-symtab/kernel-modversions/Makefile \
+test-symtab/kernel-modversions/one_of_each.c \
+test-symtab/kernel-modversions/one_of_each.ko
diff --git a/tests/data/test-abidiff-exit/test-crc-report.txt b/tests/data/test-abidiff-exit/test-crc-report.txt
new file mode 100644
index 0000000..ddba41f
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-crc-report.txt
@@ -0,0 +1,15 @@
+Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added functions
+Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
+
+1 function with some indirect sub-type change:
+
+  [C] 'function void func1(E)' has some indirect sub-type changes:
+
+    CRC value (modversions) changed from 0x10000001 to 0x10000002
+
+1 Changed variable:
+
+  [C] 'int var1' was changed:
+
+    CRC value (modversions) changed from 0x30000001 to 0x30000002
+
diff --git a/tests/data/test-abidiff-exit/test-crc-v0.abi b/tests/data/test-abidiff-exit/test-crc-v0.abi
new file mode 100644
index 0000000..320899f
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-crc-v0.abi
@@ -0,0 +1,29 @@
+<abi-corpus path='out1.o' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='func1' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10000001'/>
+    <elf-symbol name='func2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20000001'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='var1' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30000001'/>
+    <elf-symbol name='var2' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40000001'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='test1.c' language='LANG_C99'>
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-2'/>
+    <type-decl name='void' id='type-id-3'/>
+    <enum-decl name='E' id='type-id-4'>
+      <underlying-type type-id='type-id-2'/>
+      <enumerator name='VALUE_OLD' value='0'/>
+    </enum-decl>
+    <var-decl name='var1' type-id='type-id-1' mangled-name='var1' visibility='default' elf-symbol-id='var1'/>
+    <var-decl name='var2' type-id='type-id-1' mangled-name='var2' visibility='default' elf-symbol-id='var2'/>
+    <function-decl name='func2' mangled-name='func2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='func2'>
+      <parameter type-id='type-id-4' name='e'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='func1' mangled-name='func1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='func1'>
+      <parameter type-id='type-id-4' name='e'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-abidiff-exit/test-crc-v1.abi b/tests/data/test-abidiff-exit/test-crc-v1.abi
new file mode 100644
index 0000000..0baa66e
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-crc-v1.abi
@@ -0,0 +1,30 @@
+<abi-corpus path='out2.o' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='func1' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10000002'/>
+    <elf-symbol name='func2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20000001'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='var1' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30000002'/>
+    <elf-symbol name='var2' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40000001'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='test2.c' language='LANG_C99'>
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-2'/>
+    <type-decl name='void' id='type-id-3'/>
+    <enum-decl name='E' id='type-id-4'>
+      <underlying-type type-id='type-id-2'/>
+      <enumerator name='VALUE_OLD' value='0'/>
+      <enumerator name='VALUE_NEW' value='1'/>
+    </enum-decl>
+    <var-decl name='var1' type-id='type-id-1' mangled-name='var1' visibility='default' elf-symbol-id='var1'/>
+    <var-decl name='var2' type-id='type-id-1' mangled-name='var2' visibility='default' elf-symbol-id='var2'/>
+    <function-decl name='func2' mangled-name='func2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='func2'>
+      <parameter type-id='type-id-4' name='e'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='func1' mangled-name='func1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='func1'>
+      <parameter type-id='type-id-4' name='e'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-abidiff/test-empty-corpus-report.txt b/tests/data/test-abidiff/empty-report.txt
similarity index 100%
rename from tests/data/test-abidiff/test-empty-corpus-report.txt
rename to tests/data/test-abidiff/empty-report.txt
diff --git a/tests/data/test-abidiff/test-PR18166-libtirpc.so.report.txt b/tests/data/test-abidiff/test-PR18166-libtirpc.so.report.txt
deleted file mode 100644
index a9d032e..0000000
--- a/tests/data/test-abidiff/test-PR18166-libtirpc.so.report.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Functions changes summary: 0 Removed, 0 Changed, 0 Added function
-Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
-
diff --git a/tests/data/test-abidiff/test-PR24552-report0.txt b/tests/data/test-abidiff/test-PR24552-report0.txt
deleted file mode 100644
index a9d032e..0000000
--- a/tests/data/test-abidiff/test-PR24552-report0.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Functions changes summary: 0 Removed, 0 Changed, 0 Added function
-Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
-
diff --git a/tests/data/test-abidiff/test-crc-0.xml b/tests/data/test-abidiff/test-crc-0.xml
new file mode 100644
index 0000000..a5cdee7
--- /dev/null
+++ b/tests/data/test-abidiff/test-crc-0.xml
@@ -0,0 +1,1601 @@
+<abi-corpus path='tests/data/test-symtab/kernel-modversions/one_of_each.ko' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='exported_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='exported_function_gpl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='exported_variable' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='exported_variable_gpl' 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='tests/data/test-symtab/kernel-modversions/one_of_each.c' comp-dir-path='/ws/contrib/linux' language='LANG_C89'>
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <type-decl name='void' id='type-id-2'/>
+    <var-decl name='exported_variable' type-id='type-id-1' mangled-name='exported_variable' visibility='default' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='9' column='1' elf-symbol-id='exported_variable'/>
+    <var-decl name='exported_variable_gpl' type-id='type-id-1' mangled-name='exported_variable_gpl' visibility='default' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='12' column='1' elf-symbol-id='exported_variable_gpl'/>
+    <function-decl name='exported_function' mangled-name='exported_function' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='3' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='exported_function'>
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='tests/data/test-symtab/kernel-modversions/one_of_each.mod.c' comp-dir-path='/ws/contrib/linux' language='LANG_C89'>
+
+
+
+
+
+
+
+
+    <array-type-def dimensions='1' type-id='type-id-3' size-in-bits='256' id='type-id-4'>
+      <subrange length='4' type-id='type-id-5' id='type-id-6'/>
+
+    </array-type-def>
+    <type-decl name='bool' size-in-bits='8' id='type-id-7'/>
+    <type-decl name='char' size-in-bits='8' id='type-id-8'/>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='2048' id='type-id-10'>
+      <subrange length='32' type-id='type-id-5' id='type-id-11'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='192' id='type-id-12'>
+      <subrange length='3' type-id='type-id-5' id='type-id-13'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='16384' id='type-id-14'>
+      <subrange length='2048' type-id='type-id-5' id='type-id-15'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='448' id='type-id-16'>
+      <subrange length='56' type-id='type-id-5' id='type-id-17'/>
+
+    </array-type-def>
+    <class-decl name='anon_vma' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-18'/>
+    <class-decl name='exception_table_entry' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-19'/>
+    <class-decl name='file' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-20'/>
+    <class-decl name='kernfs_iattrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-21'/>
+    <class-decl name='kernfs_open_node' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-22'/>
+    <class-decl name='linux_binfmt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-23'/>
+    <class-decl name='module_param_attrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-24'/>
+    <class-decl name='poll_table_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-25'/>
+    <class-decl name='seq_file' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-26'/>
+    <class-decl name='sock' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-27'/>
+    <class-decl name='task_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-28'/>
+    <class-decl name='user_namespace' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-29'/>
+    <class-decl name='vm_operations_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-30'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-31'/>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-32'/>
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-33'/>
+    <array-type-def dimensions='1' type-id='type-id-34' size-in-bits='384' id='type-id-35'>
+      <subrange length='2' type-id='type-id-5' id='type-id-36'/>
+
+    </array-type-def>
+    <type-decl name='short int' size-in-bits='16' id='type-id-37'/>
+    <type-decl name='signed char' size-in-bits='8' id='type-id-38'/>
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-39'/>
+    <type-decl name='unsigned char' size-in-bits='8' id='type-id-40'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-41'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-5'/>
+    <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='2816' id='type-id-42'>
+      <subrange length='44' type-id='type-id-5' id='type-id-43'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='infinite' id='type-id-44'>
+      <subrange length='infinite' type-id='type-id-5' id='type-id-45'/>
+
+    </array-type-def>
+    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-46'/>
+    <class-decl name='module' size-in-bits='4608' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='347' column='1' id='type-id-47'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='state' type-id='type-id-48' visibility='default' filepath='./include/linux/module.h' line='348' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/module.h' line='351' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='name' type-id='type-id-16' visibility='default' filepath='./include/linux/module.h' line='354' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='mkobj' type-id='type-id-50' visibility='default' filepath='./include/linux/module.h' line='357' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='modinfo_attrs' type-id='type-id-51' visibility='default' filepath='./include/linux/module.h' line='358' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='version' type-id='type-id-52' visibility='default' filepath='./include/linux/module.h' line='359' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='srcversion' type-id='type-id-52' visibility='default' filepath='./include/linux/module.h' line='360' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='holders_dir' type-id='type-id-53' visibility='default' filepath='./include/linux/module.h' line='361' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='364' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='365' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='num_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='366' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='kp' type-id='type-id-56' visibility='default' filepath='./include/linux/module.h' line='372' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='num_kp' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='373' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1952'>
+        <var-decl name='num_gpl_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='376' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='gpl_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='377' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='gpl_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='378' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='unused_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='382' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='unused_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='383' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='num_unused_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='384' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2272'>
+        <var-decl name='num_unused_gpl_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='387' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='unused_gpl_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='388' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='unused_gpl_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='389' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='async_probe_requested' type-id='type-id-57' visibility='default' filepath='./include/linux/module.h' line='397' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2496'>
+        <var-decl name='gpl_future_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='400' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2560'>
+        <var-decl name='gpl_future_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='401' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2624'>
+        <var-decl name='num_gpl_future_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='402' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2656'>
+        <var-decl name='num_exentries' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='405' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2688'>
+        <var-decl name='extable' type-id='type-id-58' visibility='default' filepath='./include/linux/module.h' line='406' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2752'>
+        <var-decl name='init' type-id='type-id-59' visibility='default' filepath='./include/linux/module.h' line='409' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3072'>
+        <var-decl name='core_layout' type-id='type-id-60' visibility='default' filepath='./include/linux/module.h' line='412' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3712'>
+        <var-decl name='init_layout' type-id='type-id-60' visibility='default' filepath='./include/linux/module.h' line='413' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4352'>
+        <var-decl name='arch' type-id='type-id-61' visibility='default' filepath='./include/linux/module.h' line='416' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4352'>
+        <var-decl name='taints' type-id='type-id-5' visibility='default' filepath='./include/linux/module.h' line='418' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4416'>
+        <var-decl name='args' type-id='type-id-9' visibility='default' filepath='./include/linux/module.h' line='441' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='module_state' filepath='./include/linux/module.h' line='295' column='1' id='type-id-48'>
+      <underlying-type type-id='type-id-39'/>
+      <enumerator name='MODULE_STATE_LIVE' value='0'/>
+      <enumerator name='MODULE_STATE_COMING' value='1'/>
+      <enumerator name='MODULE_STATE_GOING' value='2'/>
+      <enumerator name='MODULE_STATE_UNFORMED' value='3'/>
+    </enum-decl>
+    <class-decl name='list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/types.h' line='181' column='1' id='type-id-49'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='next' type-id='type-id-62' visibility='default' filepath='./include/linux/types.h' line='182' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='prev' type-id='type-id-62' visibility='default' filepath='./include/linux/types.h' line='182' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_kobject' size-in-bits='768' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='42' column='1' id='type-id-50'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kobj' type-id='type-id-63' visibility='default' filepath='./include/linux/module.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/module.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='drivers_dir' type-id='type-id-53' visibility='default' filepath='./include/linux/module.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='mp' type-id='type-id-65' visibility='default' filepath='./include/linux/module.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='kobj_completion' type-id='type-id-66' visibility='default' filepath='./include/linux/module.h' line='47' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobject' size-in-bits='512' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='65' column='1' id='type-id-63'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/kobject.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='entry' type-id='type-id-49' visibility='default' filepath='./include/linux/kobject.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='parent' type-id='type-id-53' visibility='default' filepath='./include/linux/kobject.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='kset' type-id='type-id-67' visibility='default' filepath='./include/linux/kobject.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='ktype' type-id='type-id-68' visibility='default' filepath='./include/linux/kobject.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='sd' type-id='type-id-69' visibility='default' filepath='./include/linux/kobject.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='kref' type-id='type-id-70' visibility='default' filepath='./include/linux/kobject.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <var-decl name='state_initialized' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='30'>
+        <var-decl name='state_in_sysfs' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='29'>
+        <var-decl name='state_add_uevent_sent' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28'>
+        <var-decl name='state_remove_uevent_sent' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='79' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27'>
+        <var-decl name='uevent_suppress' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='80' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kset' size-in-bits='704' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='193' column='1' id='type-id-71'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/kobject.h' line='194' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='list_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/kobject.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='kobj' type-id='type-id-63' visibility='default' filepath='./include/linux/kobject.h' line='196' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='uevent_ops' type-id='type-id-73' visibility='default' filepath='./include/linux/kobject.h' line='197' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='spinlock_t' type-id='type-id-74' filepath='./include/linux/spinlock_types.h' line='73' column='1' id='type-id-72'/>
+    <class-decl name='spinlock' is-struct='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='61' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='' type-id='type-id-75' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='62' column='1' id='type-id-75'>
+      <data-member access='private'>
+        <var-decl name='rlock' type-id='type-id-76' visibility='default' filepath='./include/linux/spinlock_types.h' line='63' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='raw_spinlock' is-struct='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='20' column='1' id='type-id-76'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='raw_lock' type-id='type-id-77' visibility='default' filepath='./include/linux/spinlock_types.h' line='21' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='arch_spinlock_t' type-id='type-id-78' filepath='./include/linux/spinlock_types_up.h' line='25' column='1' id='type-id-77'/>
+    <class-decl name='__anonymous_struct__' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-77' visibility='default' filepath='./include/linux/spinlock_types_up.h' line='25' column='1' id='type-id-78'/>
+    <class-decl name='kset_uevent_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='157' column='1' id='type-id-79'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='filter' type-id='type-id-80' visibility='default' filepath='./include/linux/kobject.h' line='158' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='name' type-id='type-id-81' visibility='default' filepath='./include/linux/kobject.h' line='159' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='uevent' type-id='type-id-82' visibility='default' filepath='./include/linux/kobject.h' line='160' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobj_uevent_env' size-in-bits='18688' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='149' column='1' id='type-id-83'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='argv' type-id='type-id-12' visibility='default' filepath='./include/linux/kobject.h' line='150' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='envp' type-id='type-id-10' visibility='default' filepath='./include/linux/kobject.h' line='151' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='envp_idx' type-id='type-id-1' visibility='default' filepath='./include/linux/kobject.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2272'>
+        <var-decl name='buf' type-id='type-id-14' visibility='default' filepath='./include/linux/kobject.h' line='153' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='18656'>
+        <var-decl name='buflen' type-id='type-id-1' visibility='default' filepath='./include/linux/kobject.h' line='154' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobj_type' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='139' column='1' id='type-id-84'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='release' type-id='type-id-85' visibility='default' filepath='./include/linux/kobject.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='sysfs_ops' type-id='type-id-86' visibility='default' filepath='./include/linux/kobject.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='default_attrs' type-id='type-id-87' visibility='default' filepath='./include/linux/kobject.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='default_groups' type-id='type-id-88' visibility='default' filepath='./include/linux/kobject.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='child_ns_type' type-id='type-id-89' visibility='default' filepath='./include/linux/kobject.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='namespace' type-id='type-id-90' visibility='default' filepath='./include/linux/kobject.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='get_ownership' type-id='type-id-91' visibility='default' filepath='./include/linux/kobject.h' line='146' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='sysfs_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='223' column='1' id='type-id-92'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='show' type-id='type-id-93' visibility='default' filepath='./include/linux/sysfs.h' line='224' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='store' type-id='type-id-94' visibility='default' filepath='./include/linux/sysfs.h' line='225' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='ssize_t' type-id='type-id-95' filepath='./include/linux/types.h' line='60' column='1' id='type-id-96'/>
+    <typedef-decl name='__kernel_ssize_t' type-id='type-id-97' filepath='./include/uapi/asm-generic/posix_types.h' line='73' column='1' id='type-id-95'/>
+    <typedef-decl name='__kernel_long_t' type-id='type-id-31' filepath='./include/uapi/asm-generic/posix_types.h' line='15' column='1' id='type-id-97'/>
+    <class-decl name='attribute' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='30' column='1' id='type-id-98'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/sysfs.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mode' type-id='type-id-99' visibility='default' filepath='./include/linux/sysfs.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='umode_t' type-id='type-id-46' filepath='./include/linux/types.h' line='19' column='1' id='type-id-99'/>
+    <typedef-decl name='size_t' type-id='type-id-100' filepath='./include/linux/types.h' line='55' column='1' id='type-id-101'/>
+    <typedef-decl name='__kernel_size_t' type-id='type-id-102' filepath='./include/uapi/asm-generic/posix_types.h' line='72' column='1' id='type-id-100'/>
+    <typedef-decl name='__kernel_ulong_t' type-id='type-id-5' filepath='./include/uapi/asm-generic/posix_types.h' line='16' column='1' id='type-id-102'/>
+    <class-decl name='attribute_group' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='84' column='1' id='type-id-103'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/sysfs.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='is_visible' type-id='type-id-104' visibility='default' filepath='./include/linux/sysfs.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='is_bin_visible' type-id='type-id-105' visibility='default' filepath='./include/linux/sysfs.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='attrs' type-id='type-id-87' visibility='default' filepath='./include/linux/sysfs.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='bin_attrs' type-id='type-id-106' visibility='default' filepath='./include/linux/sysfs.h' line='91' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='bin_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='161' column='1' id='type-id-107'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='attr' type-id='type-id-98' visibility='default' filepath='./include/linux/sysfs.h' line='162' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='size' type-id='type-id-101' visibility='default' filepath='./include/linux/sysfs.h' line='163' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='private' type-id='type-id-108' visibility='default' filepath='./include/linux/sysfs.h' line='164' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='read' type-id='type-id-109' visibility='default' filepath='./include/linux/sysfs.h' line='165' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='write' type-id='type-id-109' visibility='default' filepath='./include/linux/sysfs.h' line='167' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='mmap' type-id='type-id-110' visibility='default' filepath='./include/linux/sysfs.h' line='169' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='loff_t' type-id='type-id-111' filepath='./include/linux/types.h' line='46' column='1' id='type-id-112'/>
+    <typedef-decl name='__kernel_loff_t' type-id='type-id-32' filepath='./include/uapi/asm-generic/posix_types.h' line='88' column='1' id='type-id-111'/>
+    <class-decl name='vm_area_struct' size-in-bits='1408' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='292' column='1' id='type-id-113'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='vm_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='295' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='vm_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='296' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='vm_next' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='300' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='vm_prev' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='300' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='vm_rb' type-id='type-id-34' visibility='default' filepath='./include/linux/mm_types.h' line='302' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='rb_subtree_gap' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='310' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='vm_mm' type-id='type-id-115' visibility='default' filepath='./include/linux/mm_types.h' line='314' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='vm_page_prot' type-id='type-id-116' visibility='default' filepath='./include/linux/mm_types.h' line='315' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='vm_flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='316' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='shared' type-id='type-id-117' visibility='default' filepath='./include/linux/mm_types.h' line='325' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='anon_vma_chain' type-id='type-id-49' visibility='default' filepath='./include/linux/mm_types.h' line='333' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='anon_vma' type-id='type-id-118' visibility='default' filepath='./include/linux/mm_types.h' line='335' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='vm_ops' type-id='type-id-119' visibility='default' filepath='./include/linux/mm_types.h' line='338' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='vm_pgoff' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='341' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='vm_file' type-id='type-id-120' visibility='default' filepath='./include/linux/mm_types.h' line='343' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='vm_private_data' type-id='type-id-108' visibility='default' filepath='./include/linux/mm_types.h' line='344' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='vm_userfaultfd_ctx' type-id='type-id-121' visibility='default' filepath='./include/linux/mm_types.h' line='355' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='rb_node' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/rbtree.h' line='24' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__rb_parent_color' type-id='type-id-5' visibility='default' filepath='./include/linux/rbtree.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='rb_right' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='rb_left' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='27' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mm_struct' size-in-bits='6720' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='370' column='1' id='type-id-123'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='' type-id='type-id-124' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6720'>
+        <var-decl name='cpu_bitmap' type-id='type-id-44' visibility='default' filepath='./include/linux/mm_types.h' line='533' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__1' size-in-bits='6720' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/mm_types.h' line='371' column='1' id='type-id-124'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='mmap' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='372' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mm_rb' type-id='type-id-125' visibility='default' filepath='./include/linux/mm_types.h' line='373' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='vmacache_seqnum' type-id='type-id-126' visibility='default' filepath='./include/linux/mm_types.h' line='374' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='get_unmapped_area' type-id='type-id-127' visibility='default' filepath='./include/linux/mm_types.h' line='376' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='mmap_base' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='380' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='mmap_legacy_base' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='381' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='task_size' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='387' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='highest_vm_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='388' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='pgd' type-id='type-id-128' visibility='default' filepath='./include/linux/mm_types.h' line='389' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='mm_users' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='410' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='608'>
+        <var-decl name='mm_count' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='419' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='pgtables_bytes' type-id='type-id-3' visibility='default' filepath='./include/linux/mm_types.h' line='422' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='map_count' type-id='type-id-1' visibility='default' filepath='./include/linux/mm_types.h' line='424' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='736'>
+        <var-decl name='page_table_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mm_types.h' line='426' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='mmap_sem' type-id='type-id-130' visibility='default' filepath='./include/linux/mm_types.h' line='429' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='mmlist' type-id='type-id-49' visibility='default' filepath='./include/linux/mm_types.h' line='431' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='hiwater_rss' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='438' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='hiwater_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='439' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='total_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='441' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='locked_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='442' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='pinned_vm' type-id='type-id-131' visibility='default' filepath='./include/linux/mm_types.h' line='443' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='data_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='444' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='exec_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='445' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='stack_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='446' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='def_flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='447' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='arg_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mm_types.h' line='449' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='start_code' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='end_code' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='start_data' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='end_data' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='start_brk' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='brk' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='start_stack' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='arg_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='arg_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='env_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='env_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='saved_auxv' type-id='type-id-42' visibility='default' filepath='./include/linux/mm_types.h' line='454' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5248'>
+        <var-decl name='rss_stat' type-id='type-id-132' visibility='default' filepath='./include/linux/mm_types.h' line='460' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5504'>
+        <var-decl name='binfmt' type-id='type-id-133' visibility='default' filepath='./include/linux/mm_types.h' line='462' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5568'>
+        <var-decl name='context' type-id='type-id-134' visibility='default' filepath='./include/linux/mm_types.h' line='465' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6144'>
+        <var-decl name='flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='467' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6208'>
+        <var-decl name='core_state' type-id='type-id-135' visibility='default' filepath='./include/linux/mm_types.h' line='469' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6272'>
+        <var-decl name='user_ns' type-id='type-id-136' visibility='default' filepath='./include/linux/mm_types.h' line='488' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6336'>
+        <var-decl name='exe_file' type-id='type-id-120' visibility='default' filepath='./include/linux/mm_types.h' line='491' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6400'>
+        <var-decl name='tlb_flush_pending' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='517' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6432'>
+        <var-decl name='tlb_flush_batched' type-id='type-id-57' visibility='default' filepath='./include/linux/mm_types.h' line='520' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6440'>
+        <var-decl name='uprobes_state' type-id='type-id-137' visibility='default' filepath='./include/linux/mm_types.h' line='522' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6464'>
+        <var-decl name='async_put_work' type-id='type-id-138' visibility='default' filepath='./include/linux/mm_types.h' line='526' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='rb_root' size-in-bits='64' is-struct='yes' visibility='default' filepath='./include/linux/rbtree.h' line='31' column='1' id='type-id-125'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='rb_node' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='u64' type-id='type-id-139' filepath='./include/asm-generic/int-ll64.h' line='23' column='1' id='type-id-126'/>
+    <typedef-decl name='__u64' type-id='type-id-33' filepath='./include/uapi/asm-generic/int-ll64.h' line='31' column='1' id='type-id-139'/>
+    <typedef-decl name='pgd_t' type-id='type-id-140' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1' id='type-id-141'/>
+    <class-decl name='__anonymous_struct__2' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-141' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1' id='type-id-140'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='pgd' type-id='type-id-142' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='pgdval_t' type-id='type-id-5' filepath='./arch/x86/include/asm/pgtable_64_types.h' line='18' column='1' id='type-id-142'/>
+    <typedef-decl name='atomic_t' type-id='type-id-143' filepath='./include/linux/types.h' line='173' column='1' id='type-id-129'/>
+    <class-decl name='__anonymous_struct__3' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-129' visibility='default' filepath='./include/linux/types.h' line='171' column='1' id='type-id-143'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='counter' type-id='type-id-1' visibility='default' filepath='./include/linux/types.h' line='172' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='atomic_long_t' type-id='type-id-131' filepath='./include/asm-generic/atomic-long.h' line='12' column='1' id='type-id-3'/>
+    <typedef-decl name='atomic64_t' type-id='type-id-144' filepath='./include/linux/types.h' line='178' column='1' id='type-id-131'/>
+    <class-decl name='__anonymous_struct__4' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-131' visibility='default' filepath='./include/linux/types.h' line='176' column='1' id='type-id-144'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='counter' type-id='type-id-145' visibility='default' filepath='./include/linux/types.h' line='177' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s64' type-id='type-id-146' filepath='./include/asm-generic/int-ll64.h' line='22' column='1' id='type-id-145'/>
+    <typedef-decl name='__s64' type-id='type-id-32' filepath='./include/uapi/asm-generic/int-ll64.h' line='30' column='1' id='type-id-146'/>
+    <class-decl name='rw_semaphore' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/rwsem.h' line='35' column='1' id='type-id-130'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-3' visibility='default' filepath='./include/linux/rwsem.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='owner' type-id='type-id-3' visibility='default' filepath='./include/linux/rwsem.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='wait_lock' type-id='type-id-147' visibility='default' filepath='./include/linux/rwsem.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='wait_list' type-id='type-id-49' visibility='default' filepath='./include/linux/rwsem.h' line='47' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='raw_spinlock_t' type-id='type-id-76' filepath='./include/linux/spinlock_types.h' line='29' column='1' id='type-id-147'/>
+    <class-decl name='mm_rss_stat' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/mm_types_task.h' line='60' column='1' id='type-id-132'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-4' visibility='default' filepath='./include/linux/mm_types_task.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='mm_context_t' type-id='type-id-148' filepath='./arch/x86/include/asm/mmu.h' line='57' column='1' id='type-id-134'/>
+    <class-decl name='__anonymous_struct__5' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-134' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='13' column='1' id='type-id-148'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ctx_id' type-id='type-id-126' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='18' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tlb_gen' type-id='type-id-131' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ia32_compat' type-id='type-id-46' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='lock' type-id='type-id-149' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='vdso' type-id='type-id-108' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='vdso_image' type-id='type-id-150' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='perf_rdpmc_allowed' type-id='type-id-129' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='544'>
+        <var-decl name='pkey_allocation_map' type-id='type-id-151' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='560'>
+        <var-decl name='execute_only_pkey' type-id='type-id-152' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='51' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mutex' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/mutex.h' line='53' column='1' id='type-id-149'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='owner' type-id='type-id-3' visibility='default' filepath='./include/linux/mutex.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mutex.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait_list' type-id='type-id-49' visibility='default' filepath='./include/linux/mutex.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='vdso_image' size-in-bits='832' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='13' column='1' id='type-id-153'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='data' type-id='type-id-108' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='14' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='size' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='15' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='alt' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='alt_len' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='sym_vvar_start' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='19' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='sym_vvar_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='sym_pvclock_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='sym_hvclock_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='23' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='sym_VDSO32_NOTE_MASK' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='sym___kernel_sigreturn' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='sym___kernel_rt_sigreturn' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='sym___kernel_vsyscall' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='sym_int80_landing_pad' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='28' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='u16' type-id='type-id-154' filepath='./include/asm-generic/int-ll64.h' line='19' column='1' id='type-id-151'/>
+    <typedef-decl name='__u16' type-id='type-id-46' filepath='./include/uapi/asm-generic/int-ll64.h' line='24' column='1' id='type-id-154'/>
+    <typedef-decl name='s16' type-id='type-id-155' filepath='./include/asm-generic/int-ll64.h' line='18' column='1' id='type-id-152'/>
+    <typedef-decl name='__s16' type-id='type-id-37' filepath='./include/uapi/asm-generic/int-ll64.h' line='23' column='1' id='type-id-155'/>
+    <class-decl name='core_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='363' column='1' id='type-id-156'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='nr_threads' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='364' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='dumper' type-id='type-id-157' visibility='default' filepath='./include/linux/mm_types.h' line='365' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='startup' type-id='type-id-158' visibility='default' filepath='./include/linux/mm_types.h' line='366' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='core_thread' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='358' column='1' id='type-id-157'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='task' type-id='type-id-159' visibility='default' filepath='./include/linux/mm_types.h' line='359' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='next' type-id='type-id-160' visibility='default' filepath='./include/linux/mm_types.h' line='360' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='completion' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/completion.h' line='26' column='1' id='type-id-158'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='done' type-id='type-id-41' visibility='default' filepath='./include/linux/completion.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait' type-id='type-id-161' visibility='default' filepath='./include/linux/completion.h' line='28' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='wait_queue_head_t' type-id='type-id-162' filepath='./include/linux/wait.h' line='38' column='1' id='type-id-161'/>
+    <class-decl name='wait_queue_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/wait.h' line='34' column='1' id='type-id-162'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='lock' type-id='type-id-72' visibility='default' filepath='./include/linux/wait.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='head' type-id='type-id-49' visibility='default' filepath='./include/linux/wait.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='bool' type-id='type-id-7' filepath='./include/linux/types.h' line='30' column='1' id='type-id-57'/>
+    <class-decl name='uprobes_state' is-struct='yes' visibility='default' filepath='./include/linux/uprobes.h' line='142' column='1' id='type-id-137'/>
+    <class-decl name='work_struct' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/workqueue.h' line='102' column='1' id='type-id-138'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='data' type-id='type-id-3' visibility='default' filepath='./include/linux/workqueue.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='entry' type-id='type-id-49' visibility='default' filepath='./include/linux/workqueue.h' line='104' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='func' type-id='type-id-163' visibility='default' filepath='./include/linux/workqueue.h' line='105' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='work_func_t' type-id='type-id-164' filepath='./include/linux/workqueue.h' line='21' column='1' id='type-id-163'/>
+    <typedef-decl name='pgprot_t' type-id='type-id-165' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1' id='type-id-116'/>
+    <class-decl name='pgprot' size-in-bits='64' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1' id='type-id-165'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='pgprot' type-id='type-id-166' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='pgprotval_t' type-id='type-id-5' filepath='./arch/x86/include/asm/pgtable_64_types.h' line='19' column='1' id='type-id-166'/>
+    <class-decl name='__anonymous_struct__6' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/mm_types.h' line='322' column='1' id='type-id-117'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='rb' type-id='type-id-34' visibility='default' filepath='./include/linux/mm_types.h' line='323' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rb_subtree_last' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='324' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='vm_userfaultfd_ctx' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='283' column='1' id='type-id-121'/>
+    <class-decl name='kobj_ns_type_operations' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/kobject_ns.h' line='39' column='1' id='type-id-167'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='type' type-id='type-id-168' visibility='default' filepath='./include/linux/kobject_ns.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='current_may_mount' type-id='type-id-169' visibility='default' filepath='./include/linux/kobject_ns.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='grab_current_ns' type-id='type-id-170' visibility='default' filepath='./include/linux/kobject_ns.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='netlink_ns' type-id='type-id-171' visibility='default' filepath='./include/linux/kobject_ns.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='initial_ns' type-id='type-id-170' visibility='default' filepath='./include/linux/kobject_ns.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='drop_ns' type-id='type-id-172' visibility='default' filepath='./include/linux/kobject_ns.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='kobj_ns_type' filepath='./include/linux/kobject_ns.h' line='26' column='1' id='type-id-168'>
+      <underlying-type type-id='type-id-39'/>
+      <enumerator name='KOBJ_NS_TYPE_NONE' value='0'/>
+      <enumerator name='KOBJ_NS_TYPE_NET' value='1'/>
+      <enumerator name='KOBJ_NS_TYPES' value='2'/>
+    </enum-decl>
+    <typedef-decl name='kuid_t' type-id='type-id-173' filepath='./include/linux/uidgid.h' line='23' column='1' id='type-id-174'/>
+    <class-decl name='__anonymous_struct__7' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-174' visibility='default' filepath='./include/linux/uidgid.h' line='21' column='1' id='type-id-173'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='val' type-id='type-id-175' visibility='default' filepath='./include/linux/uidgid.h' line='22' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='uid_t' type-id='type-id-176' filepath='./include/linux/types.h' line='32' column='1' id='type-id-175'/>
+    <typedef-decl name='__kernel_uid32_t' type-id='type-id-41' filepath='./include/uapi/asm-generic/posix_types.h' line='49' column='1' id='type-id-176'/>
+    <typedef-decl name='kgid_t' type-id='type-id-177' filepath='./include/linux/uidgid.h' line='28' column='1' id='type-id-178'/>
+    <class-decl name='__anonymous_struct__8' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-178' visibility='default' filepath='./include/linux/uidgid.h' line='26' column='1' id='type-id-177'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='val' type-id='type-id-179' visibility='default' filepath='./include/linux/uidgid.h' line='27' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='gid_t' type-id='type-id-180' filepath='./include/linux/types.h' line='33' column='1' id='type-id-179'/>
+    <typedef-decl name='__kernel_gid32_t' type-id='type-id-41' filepath='./include/uapi/asm-generic/posix_types.h' line='50' column='1' id='type-id-180'/>
+    <class-decl name='kernfs_node' size-in-bits='1024' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='131' column='1' id='type-id-181'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-129' visibility='default' filepath='./include/linux/kernfs.h' line='132' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='active' type-id='type-id-129' visibility='default' filepath='./include/linux/kernfs.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='parent' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/kernfs.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rb' type-id='type-id-34' visibility='default' filepath='./include/linux/kernfs.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='ns' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='hash' type-id='type-id-41' visibility='default' filepath='./include/linux/kernfs.h' line='149' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='' type-id='type-id-182' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='priv' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='156' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='id' type-id='type-id-183' visibility='default' filepath='./include/linux/kernfs.h' line='158' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='flags' type-id='type-id-46' visibility='default' filepath='./include/linux/kernfs.h' line='159' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='912'>
+        <var-decl name='mode' type-id='type-id-99' visibility='default' filepath='./include/linux/kernfs.h' line='160' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='iattr' type-id='type-id-184' visibility='default' filepath='./include/linux/kernfs.h' line='161' column='1'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__1' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='./include/linux/kernfs.h' line='150' column='1' id='type-id-182'>
+      <data-member access='private'>
+        <var-decl name='dir' type-id='type-id-185' visibility='default' filepath='./include/linux/kernfs.h' line='151' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='symlink' type-id='type-id-186' visibility='default' filepath='./include/linux/kernfs.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='attr' type-id='type-id-187' visibility='default' filepath='./include/linux/kernfs.h' line='153' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='kernfs_elem_dir' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='84' column='1' id='type-id-185'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='subdirs' type-id='type-id-5' visibility='default' filepath='./include/linux/kernfs.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='children' type-id='type-id-125' visibility='default' filepath='./include/linux/kernfs.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='root' type-id='type-id-188' visibility='default' filepath='./include/linux/kernfs.h' line='93' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_root' size-in-bits='704' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='183' column='1' id='type-id-189'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='185' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='flags' type-id='type-id-41' visibility='default' filepath='./include/linux/kernfs.h' line='186' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ino_idr' type-id='type-id-190' visibility='default' filepath='./include/linux/kernfs.h' line='189' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='last_ino' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='190' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='next_generation' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='191' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='syscall_ops' type-id='type-id-192' visibility='default' filepath='./include/linux/kernfs.h' line='192' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='supers' type-id='type-id-49' visibility='default' filepath='./include/linux/kernfs.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='deactivate_waitq' type-id='type-id-161' visibility='default' filepath='./include/linux/kernfs.h' line='197' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='idr' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/idr.h' line='19' column='1' id='type-id-190'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='idr_rt' type-id='type-id-193' visibility='default' filepath='./include/linux/idr.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='idr_base' type-id='type-id-41' visibility='default' filepath='./include/linux/idr.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='idr_next' type-id='type-id-41' visibility='default' filepath='./include/linux/idr.h' line='22' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='xarray' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/xarray.h' line='292' column='1' id='type-id-193'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='xa_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/xarray.h' line='293' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='xa_flags' type-id='type-id-194' visibility='default' filepath='./include/linux/xarray.h' line='295' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='xa_head' type-id='type-id-108' visibility='default' filepath='./include/linux/xarray.h' line='296' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='gfp_t' type-id='type-id-41' filepath='./include/linux/types.h' line='153' column='1' id='type-id-194'/>
+    <typedef-decl name='u32' type-id='type-id-195' filepath='./include/asm-generic/int-ll64.h' line='21' column='1' id='type-id-191'/>
+    <typedef-decl name='__u32' type-id='type-id-41' filepath='./include/uapi/asm-generic/int-ll64.h' line='27' column='1' id='type-id-195'/>
+    <class-decl name='kernfs_syscall_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='171' column='1' id='type-id-196'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='show_options' type-id='type-id-197' visibility='default' filepath='./include/linux/kernfs.h' line='172' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mkdir' type-id='type-id-198' visibility='default' filepath='./include/linux/kernfs.h' line='174' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='rmdir' type-id='type-id-199' visibility='default' filepath='./include/linux/kernfs.h' line='176' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rename' type-id='type-id-200' visibility='default' filepath='./include/linux/kernfs.h' line='177' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='show_path' type-id='type-id-201' visibility='default' filepath='./include/linux/kernfs.h' line='179' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_elem_symlink' size-in-bits='64' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='96' column='1' id='type-id-186'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='target_kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='97' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_elem_attr' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='100' column='1' id='type-id-187'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ops' type-id='type-id-202' visibility='default' filepath='./include/linux/kernfs.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='open' type-id='type-id-203' visibility='default' filepath='./include/linux/kernfs.h' line='102' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='size' type-id='type-id-112' visibility='default' filepath='./include/linux/kernfs.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='notify_next' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='104' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='220' column='1' id='type-id-204'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='open' type-id='type-id-205' visibility='default' filepath='./include/linux/kernfs.h' line='225' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='release' type-id='type-id-206' visibility='default' filepath='./include/linux/kernfs.h' line='226' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='seq_show' type-id='type-id-207' visibility='default' filepath='./include/linux/kernfs.h' line='239' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='seq_start' type-id='type-id-208' visibility='default' filepath='./include/linux/kernfs.h' line='241' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='seq_next' type-id='type-id-209' visibility='default' filepath='./include/linux/kernfs.h' line='242' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='seq_stop' type-id='type-id-210' visibility='default' filepath='./include/linux/kernfs.h' line='243' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='read' type-id='type-id-211' visibility='default' filepath='./include/linux/kernfs.h' line='245' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='atomic_write_len' type-id='type-id-101' visibility='default' filepath='./include/linux/kernfs.h' line='255' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='prealloc' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='262' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='write' type-id='type-id-211' visibility='default' filepath='./include/linux/kernfs.h' line='263' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='poll' type-id='type-id-212' visibility='default' filepath='./include/linux/kernfs.h' line='266' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='mmap' type-id='type-id-213' visibility='default' filepath='./include/linux/kernfs.h' line='269' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_open_file' size-in-bits='1088' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='200' column='1' id='type-id-214'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='202' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='file' type-id='type-id-120' visibility='default' filepath='./include/linux/kernfs.h' line='203' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='seq_file' type-id='type-id-215' visibility='default' filepath='./include/linux/kernfs.h' line='204' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='priv' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='205' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='mutex' type-id='type-id-149' visibility='default' filepath='./include/linux/kernfs.h' line='208' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='prealloc_mutex' type-id='type-id-149' visibility='default' filepath='./include/linux/kernfs.h' line='209' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='event' type-id='type-id-1' visibility='default' filepath='./include/linux/kernfs.h' line='210' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/kernfs.h' line='211' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='prealloc_buf' type-id='type-id-9' visibility='default' filepath='./include/linux/kernfs.h' line='212' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='atomic_write_len' type-id='type-id-101' visibility='default' filepath='./include/linux/kernfs.h' line='214' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7'>
+        <var-decl name='mmapped' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='215' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6'>
+        <var-decl name='released' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='216' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='vm_ops' type-id='type-id-119' visibility='default' filepath='./include/linux/kernfs.h' line='217' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='__poll_t' type-id='type-id-41' filepath='./include/uapi/linux/types.h' line='52' column='1' id='type-id-216'/>
+    <union-decl name='kernfs_node_id' size-in-bits='64' visibility='default' filepath='./include/linux/kernfs.h' line='108' column='1' id='type-id-183'>
+      <data-member access='private'>
+        <var-decl name='' type-id='type-id-217' visibility='default'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='id' type-id='type-id-126' visibility='default' filepath='./include/linux/kernfs.h' line='119' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='__anonymous_struct__9' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/kernfs.h' line='109' column='1' id='type-id-217'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ino' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='116' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='generation' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='117' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kref' size-in-bits='32' is-struct='yes' visibility='default' filepath='./include/linux/kref.h' line='19' column='1' id='type-id-70'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='refcount' type-id='type-id-218' visibility='default' filepath='./include/linux/kref.h' line='20' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='refcount_t' type-id='type-id-219' filepath='./include/linux/refcount.h' line='21' column='1' id='type-id-218'/>
+    <class-decl name='refcount_struct' size-in-bits='32' is-struct='yes' visibility='default' filepath='./include/linux/refcount.h' line='19' column='1' id='type-id-219'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='refs' type-id='type-id-129' visibility='default' filepath='./include/linux/refcount.h' line='20' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='50' column='1' id='type-id-220'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='attr' type-id='type-id-98' visibility='default' filepath='./include/linux/module.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='show' type-id='type-id-221' visibility='default' filepath='./include/linux/module.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='store' type-id='type-id-222' visibility='default' filepath='./include/linux/module.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='setup' type-id='type-id-223' visibility='default' filepath='./include/linux/module.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='test' type-id='type-id-224' visibility='default' filepath='./include/linux/module.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='free' type-id='type-id-225' visibility='default' filepath='./include/linux/module.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernel_symbol' size-in-bits='96' is-struct='yes' visibility='default' filepath='./include/linux/export.h' line='69' column='1' id='type-id-226'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='name_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='namespace_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='72' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s32' type-id='type-id-227' filepath='./include/asm-generic/int-ll64.h' line='20' column='1' id='type-id-228'/>
+    <typedef-decl name='__s32' type-id='type-id-1' filepath='./include/uapi/asm-generic/int-ll64.h' line='26' column='1' id='type-id-227'/>
+    <class-decl name='kernel_param' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='69' column='1' id='type-id-229'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/moduleparam.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/moduleparam.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ops' type-id='type-id-230' visibility='default' filepath='./include/linux/moduleparam.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='perm' type-id='type-id-231' visibility='default' filepath='./include/linux/moduleparam.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='208'>
+        <var-decl name='level' type-id='type-id-232' visibility='default' filepath='./include/linux/moduleparam.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='216'>
+        <var-decl name='flags' type-id='type-id-233' visibility='default' filepath='./include/linux/moduleparam.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='' type-id='type-id-234' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernel_param_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='47' column='1' id='type-id-235'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='flags' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='set' type-id='type-id-236' visibility='default' filepath='./include/linux/moduleparam.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='get' type-id='type-id-237' visibility='default' filepath='./include/linux/moduleparam.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='free' type-id='type-id-172' visibility='default' filepath='./include/linux/moduleparam.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s8' type-id='type-id-238' filepath='./include/asm-generic/int-ll64.h' line='16' column='1' id='type-id-232'/>
+    <typedef-decl name='__s8' type-id='type-id-38' filepath='./include/uapi/asm-generic/int-ll64.h' line='20' column='1' id='type-id-238'/>
+    <typedef-decl name='u8' type-id='type-id-239' filepath='./include/asm-generic/int-ll64.h' line='17' column='1' id='type-id-233'/>
+    <typedef-decl name='__u8' type-id='type-id-40' filepath='./include/uapi/asm-generic/int-ll64.h' line='21' column='1' id='type-id-239'/>
+    <union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='76' column='1' id='type-id-234'>
+      <data-member access='private'>
+        <var-decl name='arg' type-id='type-id-108' visibility='default' filepath='./include/linux/moduleparam.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='str' type-id='type-id-240' visibility='default' filepath='./include/linux/moduleparam.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='arr' type-id='type-id-241' visibility='default' filepath='./include/linux/moduleparam.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='kparam_string' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='86' column='1' id='type-id-242'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='maxlen' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='string' type-id='type-id-9' visibility='default' filepath='./include/linux/moduleparam.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kparam_array' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='92' column='1' id='type-id-243'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='max' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='elemsize' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='num' type-id='type-id-244' visibility='default' filepath='./include/linux/moduleparam.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ops' type-id='type-id-230' visibility='default' filepath='./include/linux/moduleparam.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='elem' type-id='type-id-108' visibility='default' filepath='./include/linux/moduleparam.h' line='98' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_layout' size-in-bits='640' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='307' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='base' type-id='type-id-108' visibility='default' filepath='./include/linux/module.h' line='309' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='311' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='text_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='313' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ro_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='315' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='ro_after_init_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='317' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='mtn' type-id='type-id-245' visibility='default' filepath='./include/linux/module.h' line='320' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mod_tree_node' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='302' column='1' id='type-id-245'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/module.h' line='303' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='node' type-id='type-id-246' visibility='default' filepath='./include/linux/module.h' line='304' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='latch_tree_node' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/rbtree_latch.h' line='40' column='1' id='type-id-246'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='node' type-id='type-id-35' visibility='default' filepath='./include/linux/rbtree_latch.h' line='41' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mod_arch_specific' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/module.h' line='8' column='1' id='type-id-61'/>
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-118'/>
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-247'/>
+    <pointer-type-def type-id='type-id-247' size-in-bits='64' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-248'/>
+    <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-106'/>
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-9'/>
+    <pointer-type-def type-id='type-id-158' size-in-bits='64' id='type-id-66'/>
+    <qualified-type-def type-id='type-id-103' const='yes' id='type-id-249'/>
+    <pointer-type-def type-id='type-id-249' size-in-bits='64' id='type-id-250'/>
+    <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-88'/>
+    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-251'/>
+    <pointer-type-def type-id='type-id-251' size-in-bits='64' id='type-id-52'/>
+    <pointer-type-def type-id='type-id-252' size-in-bits='64' id='type-id-253'/>
+    <qualified-type-def type-id='type-id-253' const='yes' id='type-id-81'/>
+    <qualified-type-def type-id='type-id-229' const='yes' id='type-id-254'/>
+    <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-255'/>
+    <qualified-type-def type-id='type-id-235' const='yes' id='type-id-256'/>
+    <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-230'/>
+    <qualified-type-def type-id='type-id-226' const='yes' id='type-id-257'/>
+    <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-54'/>
+    <qualified-type-def type-id='type-id-204' const='yes' id='type-id-258'/>
+    <pointer-type-def type-id='type-id-258' size-in-bits='64' id='type-id-202'/>
+    <qualified-type-def type-id='type-id-167' const='yes' id='type-id-259'/>
+    <pointer-type-def type-id='type-id-259' size-in-bits='64' id='type-id-260'/>
+    <pointer-type-def type-id='type-id-261' size-in-bits='64' id='type-id-89'/>
+    <qualified-type-def type-id='type-id-243' const='yes' id='type-id-262'/>
+    <pointer-type-def type-id='type-id-262' size-in-bits='64' id='type-id-241'/>
+    <qualified-type-def type-id='type-id-242' const='yes' id='type-id-263'/>
+    <pointer-type-def type-id='type-id-263' size-in-bits='64' id='type-id-240'/>
+    <qualified-type-def type-id='type-id-79' const='yes' id='type-id-264'/>
+    <pointer-type-def type-id='type-id-264' size-in-bits='64' id='type-id-73'/>
+    <qualified-type-def type-id='type-id-228' const='yes' id='type-id-265'/>
+    <pointer-type-def type-id='type-id-265' size-in-bits='64' id='type-id-55'/>
+    <qualified-type-def type-id='type-id-92' const='yes' id='type-id-266'/>
+    <pointer-type-def type-id='type-id-266' size-in-bits='64' id='type-id-86'/>
+    <qualified-type-def type-id='type-id-151' const='yes' id='type-id-231'/>
+    <qualified-type-def type-id='type-id-153' const='yes' id='type-id-267'/>
+    <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-150'/>
+    <qualified-type-def type-id='type-id-30' const='yes' id='type-id-268'/>
+    <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-119'/>
+    <pointer-type-def type-id='type-id-156' size-in-bits='64' id='type-id-135'/>
+    <pointer-type-def type-id='type-id-157' size-in-bits='64' id='type-id-160'/>
+    <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-58'/>
+    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-120'/>
+    <pointer-type-def type-id='type-id-269' size-in-bits='64' id='type-id-59'/>
+    <pointer-type-def type-id='type-id-270' size-in-bits='64' id='type-id-237'/>
+    <pointer-type-def type-id='type-id-271' size-in-bits='64' id='type-id-236'/>
+    <pointer-type-def type-id='type-id-272' size-in-bits='64' id='type-id-110'/>
+    <pointer-type-def type-id='type-id-273' size-in-bits='64' id='type-id-199'/>
+    <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-198'/>
+    <pointer-type-def type-id='type-id-275' size-in-bits='64' id='type-id-200'/>
+    <pointer-type-def type-id='type-id-276' size-in-bits='64' id='type-id-205'/>
+    <pointer-type-def type-id='type-id-277' size-in-bits='64' id='type-id-213'/>
+    <pointer-type-def type-id='type-id-278' size-in-bits='64' id='type-id-279'/>
+    <qualified-type-def type-id='type-id-279' const='yes' id='type-id-80'/>
+    <pointer-type-def type-id='type-id-280' size-in-bits='64' id='type-id-281'/>
+    <qualified-type-def type-id='type-id-281' const='yes' id='type-id-82'/>
+    <pointer-type-def type-id='type-id-282' size-in-bits='64' id='type-id-224'/>
+    <pointer-type-def type-id='type-id-283' size-in-bits='64' id='type-id-201'/>
+    <pointer-type-def type-id='type-id-284' size-in-bits='64' id='type-id-197'/>
+    <pointer-type-def type-id='type-id-285' size-in-bits='64' id='type-id-207'/>
+    <pointer-type-def type-id='type-id-229' size-in-bits='64' id='type-id-56'/>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-184'/>
+    <pointer-type-def type-id='type-id-181' size-in-bits='64' id='type-id-69'/>
+    <pointer-type-def type-id='type-id-214' size-in-bits='64' id='type-id-286'/>
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-203'/>
+    <pointer-type-def type-id='type-id-189' size-in-bits='64' id='type-id-188'/>
+    <pointer-type-def type-id='type-id-196' size-in-bits='64' id='type-id-192'/>
+    <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-287'/>
+    <pointer-type-def type-id='type-id-84' size-in-bits='64' id='type-id-68'/>
+    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-288'/>
+    <pointer-type-def type-id='type-id-63' size-in-bits='64' id='type-id-53'/>
+    <pointer-type-def type-id='type-id-71' size-in-bits='64' id='type-id-67'/>
+    <pointer-type-def type-id='type-id-174' size-in-bits='64' id='type-id-289'/>
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-133'/>
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-62'/>
+    <pointer-type-def type-id='type-id-112' size-in-bits='64' id='type-id-290'/>
+    <pointer-type-def type-id='type-id-123' size-in-bits='64' id='type-id-115'/>
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-64'/>
+    <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-51'/>
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-291'/>
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-65'/>
+    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-128'/>
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-292'/>
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-122'/>
+    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-215'/>
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-293'/>
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-159'/>
+    <pointer-type-def type-id='type-id-294' size-in-bits='64' id='type-id-212'/>
+    <pointer-type-def type-id='type-id-295' size-in-bits='64' id='type-id-169'/>
+    <pointer-type-def type-id='type-id-296' size-in-bits='64' id='type-id-109'/>
+    <pointer-type-def type-id='type-id-297' size-in-bits='64' id='type-id-211'/>
+    <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-93'/>
+    <pointer-type-def type-id='type-id-299' size-in-bits='64' id='type-id-94'/>
+    <pointer-type-def type-id='type-id-300' size-in-bits='64' id='type-id-221'/>
+    <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-222'/>
+    <pointer-type-def type-id='type-id-302' size-in-bits='64' id='type-id-104'/>
+    <pointer-type-def type-id='type-id-303' size-in-bits='64' id='type-id-105'/>
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-244'/>
+    <pointer-type-def type-id='type-id-304' size-in-bits='64' id='type-id-127'/>
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-136'/>
+    <pointer-type-def type-id='type-id-113' size-in-bits='64' id='type-id-114'/>
+    <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-206'/>
+    <pointer-type-def type-id='type-id-306' size-in-bits='64' id='type-id-85'/>
+    <pointer-type-def type-id='type-id-307' size-in-bits='64' id='type-id-91'/>
+    <pointer-type-def type-id='type-id-308' size-in-bits='64' id='type-id-225'/>
+    <pointer-type-def type-id='type-id-309' size-in-bits='64' id='type-id-223'/>
+    <pointer-type-def type-id='type-id-310' size-in-bits='64' id='type-id-210'/>
+    <pointer-type-def type-id='type-id-311' size-in-bits='64' id='type-id-172'/>
+    <pointer-type-def type-id='type-id-312' size-in-bits='64' id='type-id-164'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-108'/>
+    <pointer-type-def type-id='type-id-313' size-in-bits='64' id='type-id-170'/>
+    <pointer-type-def type-id='type-id-314' size-in-bits='64' id='type-id-90'/>
+    <pointer-type-def type-id='type-id-315' size-in-bits='64' id='type-id-208'/>
+    <pointer-type-def type-id='type-id-316' size-in-bits='64' id='type-id-209'/>
+    <pointer-type-def type-id='type-id-317' size-in-bits='64' id='type-id-171'/>
+    <pointer-type-def type-id='type-id-138' size-in-bits='64' id='type-id-318'/>
+    <var-decl name='__this_module' type-id='type-id-47' visibility='default' filepath='./include/linux/export.h' line='15' column='1'/>
+    <function-type size-in-bits='64' id='type-id-252'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-52'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-261'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-260'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-269'>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-270'>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-255'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-271'>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-255'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-272'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-114'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-273'>
+      <parameter type-id='type-id-69'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-274'>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-99'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-275'>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-276'>
+      <parameter type-id='type-id-286'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-277'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-114'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-278'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-280'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-288'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-282'>
+      <parameter type-id='type-id-64'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-283'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-188'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-284'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-188'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-285'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-294'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-292'/>
+      <return type-id='type-id-216'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-295'>
+      <return type-id='type-id-57'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-296'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-112'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-297'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-101'/>
+      <parameter type-id='type-id-112'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-298'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-299'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-300'>
+      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-291'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-301'>
+      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-291'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-302'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-1'/>
+      <return type-id='type-id-99'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-303'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-1'/>
+      <return type-id='type-id-99'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-304'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-5'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-305'>
+      <parameter type-id='type-id-286'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-306'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-307'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-289'/>
+      <parameter type-id='type-id-287'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-308'>
+      <parameter type-id='type-id-64'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-309'>
+      <parameter type-id='type-id-64'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-310'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-311'>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-312'>
+      <parameter type-id='type-id-318'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-313'>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-314'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-315'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-290'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-316'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <parameter type-id='type-id-290'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-317'>
+      <parameter type-id='type-id-293'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-abidiff/test-crc-1.xml b/tests/data/test-abidiff/test-crc-1.xml
new file mode 100644
index 0000000..9e1289c
--- /dev/null
+++ b/tests/data/test-abidiff/test-crc-1.xml
@@ -0,0 +1,1601 @@
+<abi-corpus path='tests/data/test-symtab/kernel-modversions/one_of_each.ko' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='exported_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe52d5bcf'/>
+    <elf-symbol name='exported_function_gpl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfda43846'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='exported_variable' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee94d699'/>
+    <elf-symbol name='exported_variable_gpl' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41336c46'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='tests/data/test-symtab/kernel-modversions/one_of_each.c' comp-dir-path='/ws/contrib/linux' language='LANG_C89'>
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <type-decl name='void' id='type-id-2'/>
+    <var-decl name='exported_variable' type-id='type-id-1' mangled-name='exported_variable' visibility='default' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='9' column='1' elf-symbol-id='exported_variable'/>
+    <var-decl name='exported_variable_gpl' type-id='type-id-1' mangled-name='exported_variable_gpl' visibility='default' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='12' column='1' elf-symbol-id='exported_variable_gpl'/>
+    <function-decl name='exported_function' mangled-name='exported_function' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='3' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='exported_function'>
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='tests/data/test-symtab/kernel-modversions/one_of_each.mod.c' comp-dir-path='/ws/contrib/linux' language='LANG_C89'>
+
+
+
+
+
+
+
+
+    <array-type-def dimensions='1' type-id='type-id-3' size-in-bits='256' id='type-id-4'>
+      <subrange length='4' type-id='type-id-5' id='type-id-6'/>
+
+    </array-type-def>
+    <type-decl name='bool' size-in-bits='8' id='type-id-7'/>
+    <type-decl name='char' size-in-bits='8' id='type-id-8'/>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='2048' id='type-id-10'>
+      <subrange length='32' type-id='type-id-5' id='type-id-11'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='192' id='type-id-12'>
+      <subrange length='3' type-id='type-id-5' id='type-id-13'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='16384' id='type-id-14'>
+      <subrange length='2048' type-id='type-id-5' id='type-id-15'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='448' id='type-id-16'>
+      <subrange length='56' type-id='type-id-5' id='type-id-17'/>
+
+    </array-type-def>
+    <class-decl name='anon_vma' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-18'/>
+    <class-decl name='exception_table_entry' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-19'/>
+    <class-decl name='file' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-20'/>
+    <class-decl name='kernfs_iattrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-21'/>
+    <class-decl name='kernfs_open_node' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-22'/>
+    <class-decl name='linux_binfmt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-23'/>
+    <class-decl name='module_param_attrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-24'/>
+    <class-decl name='poll_table_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-25'/>
+    <class-decl name='seq_file' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-26'/>
+    <class-decl name='sock' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-27'/>
+    <class-decl name='task_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-28'/>
+    <class-decl name='user_namespace' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-29'/>
+    <class-decl name='vm_operations_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-30'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-31'/>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-32'/>
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-33'/>
+    <array-type-def dimensions='1' type-id='type-id-34' size-in-bits='384' id='type-id-35'>
+      <subrange length='2' type-id='type-id-5' id='type-id-36'/>
+
+    </array-type-def>
+    <type-decl name='short int' size-in-bits='16' id='type-id-37'/>
+    <type-decl name='signed char' size-in-bits='8' id='type-id-38'/>
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-39'/>
+    <type-decl name='unsigned char' size-in-bits='8' id='type-id-40'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-41'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-5'/>
+    <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='2816' id='type-id-42'>
+      <subrange length='44' type-id='type-id-5' id='type-id-43'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='infinite' id='type-id-44'>
+      <subrange length='infinite' type-id='type-id-5' id='type-id-45'/>
+
+    </array-type-def>
+    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-46'/>
+    <class-decl name='module' size-in-bits='4608' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='347' column='1' id='type-id-47'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='state' type-id='type-id-48' visibility='default' filepath='./include/linux/module.h' line='348' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/module.h' line='351' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='name' type-id='type-id-16' visibility='default' filepath='./include/linux/module.h' line='354' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='mkobj' type-id='type-id-50' visibility='default' filepath='./include/linux/module.h' line='357' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='modinfo_attrs' type-id='type-id-51' visibility='default' filepath='./include/linux/module.h' line='358' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='version' type-id='type-id-52' visibility='default' filepath='./include/linux/module.h' line='359' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='srcversion' type-id='type-id-52' visibility='default' filepath='./include/linux/module.h' line='360' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='holders_dir' type-id='type-id-53' visibility='default' filepath='./include/linux/module.h' line='361' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='364' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='365' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='num_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='366' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='kp' type-id='type-id-56' visibility='default' filepath='./include/linux/module.h' line='372' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='num_kp' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='373' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1952'>
+        <var-decl name='num_gpl_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='376' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='gpl_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='377' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='gpl_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='378' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='unused_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='382' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='unused_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='383' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='num_unused_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='384' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2272'>
+        <var-decl name='num_unused_gpl_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='387' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='unused_gpl_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='388' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='unused_gpl_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='389' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='async_probe_requested' type-id='type-id-57' visibility='default' filepath='./include/linux/module.h' line='397' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2496'>
+        <var-decl name='gpl_future_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='400' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2560'>
+        <var-decl name='gpl_future_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='401' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2624'>
+        <var-decl name='num_gpl_future_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='402' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2656'>
+        <var-decl name='num_exentries' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='405' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2688'>
+        <var-decl name='extable' type-id='type-id-58' visibility='default' filepath='./include/linux/module.h' line='406' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2752'>
+        <var-decl name='init' type-id='type-id-59' visibility='default' filepath='./include/linux/module.h' line='409' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3072'>
+        <var-decl name='core_layout' type-id='type-id-60' visibility='default' filepath='./include/linux/module.h' line='412' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3712'>
+        <var-decl name='init_layout' type-id='type-id-60' visibility='default' filepath='./include/linux/module.h' line='413' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4352'>
+        <var-decl name='arch' type-id='type-id-61' visibility='default' filepath='./include/linux/module.h' line='416' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4352'>
+        <var-decl name='taints' type-id='type-id-5' visibility='default' filepath='./include/linux/module.h' line='418' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4416'>
+        <var-decl name='args' type-id='type-id-9' visibility='default' filepath='./include/linux/module.h' line='441' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='module_state' filepath='./include/linux/module.h' line='295' column='1' id='type-id-48'>
+      <underlying-type type-id='type-id-39'/>
+      <enumerator name='MODULE_STATE_LIVE' value='0'/>
+      <enumerator name='MODULE_STATE_COMING' value='1'/>
+      <enumerator name='MODULE_STATE_GOING' value='2'/>
+      <enumerator name='MODULE_STATE_UNFORMED' value='3'/>
+    </enum-decl>
+    <class-decl name='list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/types.h' line='181' column='1' id='type-id-49'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='next' type-id='type-id-62' visibility='default' filepath='./include/linux/types.h' line='182' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='prev' type-id='type-id-62' visibility='default' filepath='./include/linux/types.h' line='182' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_kobject' size-in-bits='768' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='42' column='1' id='type-id-50'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kobj' type-id='type-id-63' visibility='default' filepath='./include/linux/module.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/module.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='drivers_dir' type-id='type-id-53' visibility='default' filepath='./include/linux/module.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='mp' type-id='type-id-65' visibility='default' filepath='./include/linux/module.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='kobj_completion' type-id='type-id-66' visibility='default' filepath='./include/linux/module.h' line='47' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobject' size-in-bits='512' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='65' column='1' id='type-id-63'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/kobject.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='entry' type-id='type-id-49' visibility='default' filepath='./include/linux/kobject.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='parent' type-id='type-id-53' visibility='default' filepath='./include/linux/kobject.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='kset' type-id='type-id-67' visibility='default' filepath='./include/linux/kobject.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='ktype' type-id='type-id-68' visibility='default' filepath='./include/linux/kobject.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='sd' type-id='type-id-69' visibility='default' filepath='./include/linux/kobject.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='kref' type-id='type-id-70' visibility='default' filepath='./include/linux/kobject.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <var-decl name='state_initialized' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='30'>
+        <var-decl name='state_in_sysfs' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='29'>
+        <var-decl name='state_add_uevent_sent' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28'>
+        <var-decl name='state_remove_uevent_sent' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='79' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27'>
+        <var-decl name='uevent_suppress' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='80' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kset' size-in-bits='704' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='193' column='1' id='type-id-71'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/kobject.h' line='194' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='list_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/kobject.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='kobj' type-id='type-id-63' visibility='default' filepath='./include/linux/kobject.h' line='196' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='uevent_ops' type-id='type-id-73' visibility='default' filepath='./include/linux/kobject.h' line='197' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='spinlock_t' type-id='type-id-74' filepath='./include/linux/spinlock_types.h' line='73' column='1' id='type-id-72'/>
+    <class-decl name='spinlock' is-struct='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='61' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='' type-id='type-id-75' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='62' column='1' id='type-id-75'>
+      <data-member access='private'>
+        <var-decl name='rlock' type-id='type-id-76' visibility='default' filepath='./include/linux/spinlock_types.h' line='63' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='raw_spinlock' is-struct='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='20' column='1' id='type-id-76'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='raw_lock' type-id='type-id-77' visibility='default' filepath='./include/linux/spinlock_types.h' line='21' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='arch_spinlock_t' type-id='type-id-78' filepath='./include/linux/spinlock_types_up.h' line='25' column='1' id='type-id-77'/>
+    <class-decl name='__anonymous_struct__' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-77' visibility='default' filepath='./include/linux/spinlock_types_up.h' line='25' column='1' id='type-id-78'/>
+    <class-decl name='kset_uevent_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='157' column='1' id='type-id-79'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='filter' type-id='type-id-80' visibility='default' filepath='./include/linux/kobject.h' line='158' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='name' type-id='type-id-81' visibility='default' filepath='./include/linux/kobject.h' line='159' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='uevent' type-id='type-id-82' visibility='default' filepath='./include/linux/kobject.h' line='160' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobj_uevent_env' size-in-bits='18688' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='149' column='1' id='type-id-83'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='argv' type-id='type-id-12' visibility='default' filepath='./include/linux/kobject.h' line='150' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='envp' type-id='type-id-10' visibility='default' filepath='./include/linux/kobject.h' line='151' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='envp_idx' type-id='type-id-1' visibility='default' filepath='./include/linux/kobject.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2272'>
+        <var-decl name='buf' type-id='type-id-14' visibility='default' filepath='./include/linux/kobject.h' line='153' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='18656'>
+        <var-decl name='buflen' type-id='type-id-1' visibility='default' filepath='./include/linux/kobject.h' line='154' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobj_type' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='139' column='1' id='type-id-84'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='release' type-id='type-id-85' visibility='default' filepath='./include/linux/kobject.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='sysfs_ops' type-id='type-id-86' visibility='default' filepath='./include/linux/kobject.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='default_attrs' type-id='type-id-87' visibility='default' filepath='./include/linux/kobject.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='default_groups' type-id='type-id-88' visibility='default' filepath='./include/linux/kobject.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='child_ns_type' type-id='type-id-89' visibility='default' filepath='./include/linux/kobject.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='namespace' type-id='type-id-90' visibility='default' filepath='./include/linux/kobject.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='get_ownership' type-id='type-id-91' visibility='default' filepath='./include/linux/kobject.h' line='146' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='sysfs_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='223' column='1' id='type-id-92'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='show' type-id='type-id-93' visibility='default' filepath='./include/linux/sysfs.h' line='224' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='store' type-id='type-id-94' visibility='default' filepath='./include/linux/sysfs.h' line='225' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='ssize_t' type-id='type-id-95' filepath='./include/linux/types.h' line='60' column='1' id='type-id-96'/>
+    <typedef-decl name='__kernel_ssize_t' type-id='type-id-97' filepath='./include/uapi/asm-generic/posix_types.h' line='73' column='1' id='type-id-95'/>
+    <typedef-decl name='__kernel_long_t' type-id='type-id-31' filepath='./include/uapi/asm-generic/posix_types.h' line='15' column='1' id='type-id-97'/>
+    <class-decl name='attribute' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='30' column='1' id='type-id-98'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/sysfs.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mode' type-id='type-id-99' visibility='default' filepath='./include/linux/sysfs.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='umode_t' type-id='type-id-46' filepath='./include/linux/types.h' line='19' column='1' id='type-id-99'/>
+    <typedef-decl name='size_t' type-id='type-id-100' filepath='./include/linux/types.h' line='55' column='1' id='type-id-101'/>
+    <typedef-decl name='__kernel_size_t' type-id='type-id-102' filepath='./include/uapi/asm-generic/posix_types.h' line='72' column='1' id='type-id-100'/>
+    <typedef-decl name='__kernel_ulong_t' type-id='type-id-5' filepath='./include/uapi/asm-generic/posix_types.h' line='16' column='1' id='type-id-102'/>
+    <class-decl name='attribute_group' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='84' column='1' id='type-id-103'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/sysfs.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='is_visible' type-id='type-id-104' visibility='default' filepath='./include/linux/sysfs.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='is_bin_visible' type-id='type-id-105' visibility='default' filepath='./include/linux/sysfs.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='attrs' type-id='type-id-87' visibility='default' filepath='./include/linux/sysfs.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='bin_attrs' type-id='type-id-106' visibility='default' filepath='./include/linux/sysfs.h' line='91' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='bin_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='161' column='1' id='type-id-107'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='attr' type-id='type-id-98' visibility='default' filepath='./include/linux/sysfs.h' line='162' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='size' type-id='type-id-101' visibility='default' filepath='./include/linux/sysfs.h' line='163' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='private' type-id='type-id-108' visibility='default' filepath='./include/linux/sysfs.h' line='164' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='read' type-id='type-id-109' visibility='default' filepath='./include/linux/sysfs.h' line='165' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='write' type-id='type-id-109' visibility='default' filepath='./include/linux/sysfs.h' line='167' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='mmap' type-id='type-id-110' visibility='default' filepath='./include/linux/sysfs.h' line='169' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='loff_t' type-id='type-id-111' filepath='./include/linux/types.h' line='46' column='1' id='type-id-112'/>
+    <typedef-decl name='__kernel_loff_t' type-id='type-id-32' filepath='./include/uapi/asm-generic/posix_types.h' line='88' column='1' id='type-id-111'/>
+    <class-decl name='vm_area_struct' size-in-bits='1408' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='292' column='1' id='type-id-113'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='vm_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='295' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='vm_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='296' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='vm_next' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='300' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='vm_prev' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='300' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='vm_rb' type-id='type-id-34' visibility='default' filepath='./include/linux/mm_types.h' line='302' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='rb_subtree_gap' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='310' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='vm_mm' type-id='type-id-115' visibility='default' filepath='./include/linux/mm_types.h' line='314' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='vm_page_prot' type-id='type-id-116' visibility='default' filepath='./include/linux/mm_types.h' line='315' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='vm_flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='316' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='shared' type-id='type-id-117' visibility='default' filepath='./include/linux/mm_types.h' line='325' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='anon_vma_chain' type-id='type-id-49' visibility='default' filepath='./include/linux/mm_types.h' line='333' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='anon_vma' type-id='type-id-118' visibility='default' filepath='./include/linux/mm_types.h' line='335' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='vm_ops' type-id='type-id-119' visibility='default' filepath='./include/linux/mm_types.h' line='338' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='vm_pgoff' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='341' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='vm_file' type-id='type-id-120' visibility='default' filepath='./include/linux/mm_types.h' line='343' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='vm_private_data' type-id='type-id-108' visibility='default' filepath='./include/linux/mm_types.h' line='344' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='vm_userfaultfd_ctx' type-id='type-id-121' visibility='default' filepath='./include/linux/mm_types.h' line='355' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='rb_node' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/rbtree.h' line='24' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__rb_parent_color' type-id='type-id-5' visibility='default' filepath='./include/linux/rbtree.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='rb_right' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='rb_left' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='27' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mm_struct' size-in-bits='6720' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='370' column='1' id='type-id-123'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='' type-id='type-id-124' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6720'>
+        <var-decl name='cpu_bitmap' type-id='type-id-44' visibility='default' filepath='./include/linux/mm_types.h' line='533' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__1' size-in-bits='6720' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/mm_types.h' line='371' column='1' id='type-id-124'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='mmap' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='372' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mm_rb' type-id='type-id-125' visibility='default' filepath='./include/linux/mm_types.h' line='373' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='vmacache_seqnum' type-id='type-id-126' visibility='default' filepath='./include/linux/mm_types.h' line='374' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='get_unmapped_area' type-id='type-id-127' visibility='default' filepath='./include/linux/mm_types.h' line='376' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='mmap_base' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='380' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='mmap_legacy_base' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='381' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='task_size' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='387' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='highest_vm_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='388' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='pgd' type-id='type-id-128' visibility='default' filepath='./include/linux/mm_types.h' line='389' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='mm_users' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='410' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='608'>
+        <var-decl name='mm_count' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='419' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='pgtables_bytes' type-id='type-id-3' visibility='default' filepath='./include/linux/mm_types.h' line='422' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='map_count' type-id='type-id-1' visibility='default' filepath='./include/linux/mm_types.h' line='424' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='736'>
+        <var-decl name='page_table_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mm_types.h' line='426' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='mmap_sem' type-id='type-id-130' visibility='default' filepath='./include/linux/mm_types.h' line='429' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='mmlist' type-id='type-id-49' visibility='default' filepath='./include/linux/mm_types.h' line='431' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='hiwater_rss' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='438' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='hiwater_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='439' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='total_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='441' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='locked_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='442' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='pinned_vm' type-id='type-id-131' visibility='default' filepath='./include/linux/mm_types.h' line='443' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='data_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='444' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='exec_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='445' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='stack_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='446' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='def_flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='447' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='arg_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mm_types.h' line='449' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='start_code' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='end_code' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='start_data' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='end_data' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='start_brk' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='brk' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='start_stack' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='arg_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='arg_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='env_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='env_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='saved_auxv' type-id='type-id-42' visibility='default' filepath='./include/linux/mm_types.h' line='454' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5248'>
+        <var-decl name='rss_stat' type-id='type-id-132' visibility='default' filepath='./include/linux/mm_types.h' line='460' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5504'>
+        <var-decl name='binfmt' type-id='type-id-133' visibility='default' filepath='./include/linux/mm_types.h' line='462' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5568'>
+        <var-decl name='context' type-id='type-id-134' visibility='default' filepath='./include/linux/mm_types.h' line='465' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6144'>
+        <var-decl name='flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='467' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6208'>
+        <var-decl name='core_state' type-id='type-id-135' visibility='default' filepath='./include/linux/mm_types.h' line='469' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6272'>
+        <var-decl name='user_ns' type-id='type-id-136' visibility='default' filepath='./include/linux/mm_types.h' line='488' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6336'>
+        <var-decl name='exe_file' type-id='type-id-120' visibility='default' filepath='./include/linux/mm_types.h' line='491' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6400'>
+        <var-decl name='tlb_flush_pending' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='517' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6432'>
+        <var-decl name='tlb_flush_batched' type-id='type-id-57' visibility='default' filepath='./include/linux/mm_types.h' line='520' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6440'>
+        <var-decl name='uprobes_state' type-id='type-id-137' visibility='default' filepath='./include/linux/mm_types.h' line='522' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6464'>
+        <var-decl name='async_put_work' type-id='type-id-138' visibility='default' filepath='./include/linux/mm_types.h' line='526' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='rb_root' size-in-bits='64' is-struct='yes' visibility='default' filepath='./include/linux/rbtree.h' line='31' column='1' id='type-id-125'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='rb_node' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='u64' type-id='type-id-139' filepath='./include/asm-generic/int-ll64.h' line='23' column='1' id='type-id-126'/>
+    <typedef-decl name='__u64' type-id='type-id-33' filepath='./include/uapi/asm-generic/int-ll64.h' line='31' column='1' id='type-id-139'/>
+    <typedef-decl name='pgd_t' type-id='type-id-140' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1' id='type-id-141'/>
+    <class-decl name='__anonymous_struct__2' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-141' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1' id='type-id-140'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='pgd' type-id='type-id-142' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='pgdval_t' type-id='type-id-5' filepath='./arch/x86/include/asm/pgtable_64_types.h' line='18' column='1' id='type-id-142'/>
+    <typedef-decl name='atomic_t' type-id='type-id-143' filepath='./include/linux/types.h' line='173' column='1' id='type-id-129'/>
+    <class-decl name='__anonymous_struct__3' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-129' visibility='default' filepath='./include/linux/types.h' line='171' column='1' id='type-id-143'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='counter' type-id='type-id-1' visibility='default' filepath='./include/linux/types.h' line='172' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='atomic_long_t' type-id='type-id-131' filepath='./include/asm-generic/atomic-long.h' line='12' column='1' id='type-id-3'/>
+    <typedef-decl name='atomic64_t' type-id='type-id-144' filepath='./include/linux/types.h' line='178' column='1' id='type-id-131'/>
+    <class-decl name='__anonymous_struct__4' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-131' visibility='default' filepath='./include/linux/types.h' line='176' column='1' id='type-id-144'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='counter' type-id='type-id-145' visibility='default' filepath='./include/linux/types.h' line='177' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s64' type-id='type-id-146' filepath='./include/asm-generic/int-ll64.h' line='22' column='1' id='type-id-145'/>
+    <typedef-decl name='__s64' type-id='type-id-32' filepath='./include/uapi/asm-generic/int-ll64.h' line='30' column='1' id='type-id-146'/>
+    <class-decl name='rw_semaphore' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/rwsem.h' line='35' column='1' id='type-id-130'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-3' visibility='default' filepath='./include/linux/rwsem.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='owner' type-id='type-id-3' visibility='default' filepath='./include/linux/rwsem.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='wait_lock' type-id='type-id-147' visibility='default' filepath='./include/linux/rwsem.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='wait_list' type-id='type-id-49' visibility='default' filepath='./include/linux/rwsem.h' line='47' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='raw_spinlock_t' type-id='type-id-76' filepath='./include/linux/spinlock_types.h' line='29' column='1' id='type-id-147'/>
+    <class-decl name='mm_rss_stat' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/mm_types_task.h' line='60' column='1' id='type-id-132'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-4' visibility='default' filepath='./include/linux/mm_types_task.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='mm_context_t' type-id='type-id-148' filepath='./arch/x86/include/asm/mmu.h' line='57' column='1' id='type-id-134'/>
+    <class-decl name='__anonymous_struct__5' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-134' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='13' column='1' id='type-id-148'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ctx_id' type-id='type-id-126' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='18' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tlb_gen' type-id='type-id-131' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ia32_compat' type-id='type-id-46' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='lock' type-id='type-id-149' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='vdso' type-id='type-id-108' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='vdso_image' type-id='type-id-150' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='perf_rdpmc_allowed' type-id='type-id-129' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='544'>
+        <var-decl name='pkey_allocation_map' type-id='type-id-151' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='560'>
+        <var-decl name='execute_only_pkey' type-id='type-id-152' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='51' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mutex' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/mutex.h' line='53' column='1' id='type-id-149'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='owner' type-id='type-id-3' visibility='default' filepath='./include/linux/mutex.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mutex.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait_list' type-id='type-id-49' visibility='default' filepath='./include/linux/mutex.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='vdso_image' size-in-bits='832' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='13' column='1' id='type-id-153'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='data' type-id='type-id-108' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='14' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='size' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='15' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='alt' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='alt_len' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='sym_vvar_start' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='19' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='sym_vvar_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='sym_pvclock_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='sym_hvclock_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='23' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='sym_VDSO32_NOTE_MASK' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='sym___kernel_sigreturn' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='sym___kernel_rt_sigreturn' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='sym___kernel_vsyscall' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='sym_int80_landing_pad' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='28' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='u16' type-id='type-id-154' filepath='./include/asm-generic/int-ll64.h' line='19' column='1' id='type-id-151'/>
+    <typedef-decl name='__u16' type-id='type-id-46' filepath='./include/uapi/asm-generic/int-ll64.h' line='24' column='1' id='type-id-154'/>
+    <typedef-decl name='s16' type-id='type-id-155' filepath='./include/asm-generic/int-ll64.h' line='18' column='1' id='type-id-152'/>
+    <typedef-decl name='__s16' type-id='type-id-37' filepath='./include/uapi/asm-generic/int-ll64.h' line='23' column='1' id='type-id-155'/>
+    <class-decl name='core_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='363' column='1' id='type-id-156'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='nr_threads' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='364' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='dumper' type-id='type-id-157' visibility='default' filepath='./include/linux/mm_types.h' line='365' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='startup' type-id='type-id-158' visibility='default' filepath='./include/linux/mm_types.h' line='366' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='core_thread' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='358' column='1' id='type-id-157'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='task' type-id='type-id-159' visibility='default' filepath='./include/linux/mm_types.h' line='359' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='next' type-id='type-id-160' visibility='default' filepath='./include/linux/mm_types.h' line='360' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='completion' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/completion.h' line='26' column='1' id='type-id-158'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='done' type-id='type-id-41' visibility='default' filepath='./include/linux/completion.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait' type-id='type-id-161' visibility='default' filepath='./include/linux/completion.h' line='28' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='wait_queue_head_t' type-id='type-id-162' filepath='./include/linux/wait.h' line='38' column='1' id='type-id-161'/>
+    <class-decl name='wait_queue_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/wait.h' line='34' column='1' id='type-id-162'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='lock' type-id='type-id-72' visibility='default' filepath='./include/linux/wait.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='head' type-id='type-id-49' visibility='default' filepath='./include/linux/wait.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='bool' type-id='type-id-7' filepath='./include/linux/types.h' line='30' column='1' id='type-id-57'/>
+    <class-decl name='uprobes_state' is-struct='yes' visibility='default' filepath='./include/linux/uprobes.h' line='142' column='1' id='type-id-137'/>
+    <class-decl name='work_struct' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/workqueue.h' line='102' column='1' id='type-id-138'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='data' type-id='type-id-3' visibility='default' filepath='./include/linux/workqueue.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='entry' type-id='type-id-49' visibility='default' filepath='./include/linux/workqueue.h' line='104' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='func' type-id='type-id-163' visibility='default' filepath='./include/linux/workqueue.h' line='105' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='work_func_t' type-id='type-id-164' filepath='./include/linux/workqueue.h' line='21' column='1' id='type-id-163'/>
+    <typedef-decl name='pgprot_t' type-id='type-id-165' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1' id='type-id-116'/>
+    <class-decl name='pgprot' size-in-bits='64' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1' id='type-id-165'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='pgprot' type-id='type-id-166' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='pgprotval_t' type-id='type-id-5' filepath='./arch/x86/include/asm/pgtable_64_types.h' line='19' column='1' id='type-id-166'/>
+    <class-decl name='__anonymous_struct__6' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/mm_types.h' line='322' column='1' id='type-id-117'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='rb' type-id='type-id-34' visibility='default' filepath='./include/linux/mm_types.h' line='323' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rb_subtree_last' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='324' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='vm_userfaultfd_ctx' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='283' column='1' id='type-id-121'/>
+    <class-decl name='kobj_ns_type_operations' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/kobject_ns.h' line='39' column='1' id='type-id-167'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='type' type-id='type-id-168' visibility='default' filepath='./include/linux/kobject_ns.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='current_may_mount' type-id='type-id-169' visibility='default' filepath='./include/linux/kobject_ns.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='grab_current_ns' type-id='type-id-170' visibility='default' filepath='./include/linux/kobject_ns.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='netlink_ns' type-id='type-id-171' visibility='default' filepath='./include/linux/kobject_ns.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='initial_ns' type-id='type-id-170' visibility='default' filepath='./include/linux/kobject_ns.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='drop_ns' type-id='type-id-172' visibility='default' filepath='./include/linux/kobject_ns.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='kobj_ns_type' filepath='./include/linux/kobject_ns.h' line='26' column='1' id='type-id-168'>
+      <underlying-type type-id='type-id-39'/>
+      <enumerator name='KOBJ_NS_TYPE_NONE' value='0'/>
+      <enumerator name='KOBJ_NS_TYPE_NET' value='1'/>
+      <enumerator name='KOBJ_NS_TYPES' value='2'/>
+    </enum-decl>
+    <typedef-decl name='kuid_t' type-id='type-id-173' filepath='./include/linux/uidgid.h' line='23' column='1' id='type-id-174'/>
+    <class-decl name='__anonymous_struct__7' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-174' visibility='default' filepath='./include/linux/uidgid.h' line='21' column='1' id='type-id-173'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='val' type-id='type-id-175' visibility='default' filepath='./include/linux/uidgid.h' line='22' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='uid_t' type-id='type-id-176' filepath='./include/linux/types.h' line='32' column='1' id='type-id-175'/>
+    <typedef-decl name='__kernel_uid32_t' type-id='type-id-41' filepath='./include/uapi/asm-generic/posix_types.h' line='49' column='1' id='type-id-176'/>
+    <typedef-decl name='kgid_t' type-id='type-id-177' filepath='./include/linux/uidgid.h' line='28' column='1' id='type-id-178'/>
+    <class-decl name='__anonymous_struct__8' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-178' visibility='default' filepath='./include/linux/uidgid.h' line='26' column='1' id='type-id-177'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='val' type-id='type-id-179' visibility='default' filepath='./include/linux/uidgid.h' line='27' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='gid_t' type-id='type-id-180' filepath='./include/linux/types.h' line='33' column='1' id='type-id-179'/>
+    <typedef-decl name='__kernel_gid32_t' type-id='type-id-41' filepath='./include/uapi/asm-generic/posix_types.h' line='50' column='1' id='type-id-180'/>
+    <class-decl name='kernfs_node' size-in-bits='1024' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='131' column='1' id='type-id-181'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-129' visibility='default' filepath='./include/linux/kernfs.h' line='132' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='active' type-id='type-id-129' visibility='default' filepath='./include/linux/kernfs.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='parent' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/kernfs.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rb' type-id='type-id-34' visibility='default' filepath='./include/linux/kernfs.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='ns' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='hash' type-id='type-id-41' visibility='default' filepath='./include/linux/kernfs.h' line='149' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='' type-id='type-id-182' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='priv' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='156' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='id' type-id='type-id-183' visibility='default' filepath='./include/linux/kernfs.h' line='158' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='flags' type-id='type-id-46' visibility='default' filepath='./include/linux/kernfs.h' line='159' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='912'>
+        <var-decl name='mode' type-id='type-id-99' visibility='default' filepath='./include/linux/kernfs.h' line='160' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='iattr' type-id='type-id-184' visibility='default' filepath='./include/linux/kernfs.h' line='161' column='1'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__1' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='./include/linux/kernfs.h' line='150' column='1' id='type-id-182'>
+      <data-member access='private'>
+        <var-decl name='dir' type-id='type-id-185' visibility='default' filepath='./include/linux/kernfs.h' line='151' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='symlink' type-id='type-id-186' visibility='default' filepath='./include/linux/kernfs.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='attr' type-id='type-id-187' visibility='default' filepath='./include/linux/kernfs.h' line='153' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='kernfs_elem_dir' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='84' column='1' id='type-id-185'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='subdirs' type-id='type-id-5' visibility='default' filepath='./include/linux/kernfs.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='children' type-id='type-id-125' visibility='default' filepath='./include/linux/kernfs.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='root' type-id='type-id-188' visibility='default' filepath='./include/linux/kernfs.h' line='93' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_root' size-in-bits='704' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='183' column='1' id='type-id-189'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='185' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='flags' type-id='type-id-41' visibility='default' filepath='./include/linux/kernfs.h' line='186' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ino_idr' type-id='type-id-190' visibility='default' filepath='./include/linux/kernfs.h' line='189' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='last_ino' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='190' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='next_generation' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='191' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='syscall_ops' type-id='type-id-192' visibility='default' filepath='./include/linux/kernfs.h' line='192' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='supers' type-id='type-id-49' visibility='default' filepath='./include/linux/kernfs.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='deactivate_waitq' type-id='type-id-161' visibility='default' filepath='./include/linux/kernfs.h' line='197' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='idr' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/idr.h' line='19' column='1' id='type-id-190'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='idr_rt' type-id='type-id-193' visibility='default' filepath='./include/linux/idr.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='idr_base' type-id='type-id-41' visibility='default' filepath='./include/linux/idr.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='idr_next' type-id='type-id-41' visibility='default' filepath='./include/linux/idr.h' line='22' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='xarray' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/xarray.h' line='292' column='1' id='type-id-193'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='xa_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/xarray.h' line='293' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='xa_flags' type-id='type-id-194' visibility='default' filepath='./include/linux/xarray.h' line='295' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='xa_head' type-id='type-id-108' visibility='default' filepath='./include/linux/xarray.h' line='296' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='gfp_t' type-id='type-id-41' filepath='./include/linux/types.h' line='153' column='1' id='type-id-194'/>
+    <typedef-decl name='u32' type-id='type-id-195' filepath='./include/asm-generic/int-ll64.h' line='21' column='1' id='type-id-191'/>
+    <typedef-decl name='__u32' type-id='type-id-41' filepath='./include/uapi/asm-generic/int-ll64.h' line='27' column='1' id='type-id-195'/>
+    <class-decl name='kernfs_syscall_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='171' column='1' id='type-id-196'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='show_options' type-id='type-id-197' visibility='default' filepath='./include/linux/kernfs.h' line='172' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mkdir' type-id='type-id-198' visibility='default' filepath='./include/linux/kernfs.h' line='174' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='rmdir' type-id='type-id-199' visibility='default' filepath='./include/linux/kernfs.h' line='176' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rename' type-id='type-id-200' visibility='default' filepath='./include/linux/kernfs.h' line='177' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='show_path' type-id='type-id-201' visibility='default' filepath='./include/linux/kernfs.h' line='179' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_elem_symlink' size-in-bits='64' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='96' column='1' id='type-id-186'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='target_kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='97' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_elem_attr' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='100' column='1' id='type-id-187'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ops' type-id='type-id-202' visibility='default' filepath='./include/linux/kernfs.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='open' type-id='type-id-203' visibility='default' filepath='./include/linux/kernfs.h' line='102' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='size' type-id='type-id-112' visibility='default' filepath='./include/linux/kernfs.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='notify_next' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='104' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='220' column='1' id='type-id-204'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='open' type-id='type-id-205' visibility='default' filepath='./include/linux/kernfs.h' line='225' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='release' type-id='type-id-206' visibility='default' filepath='./include/linux/kernfs.h' line='226' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='seq_show' type-id='type-id-207' visibility='default' filepath='./include/linux/kernfs.h' line='239' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='seq_start' type-id='type-id-208' visibility='default' filepath='./include/linux/kernfs.h' line='241' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='seq_next' type-id='type-id-209' visibility='default' filepath='./include/linux/kernfs.h' line='242' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='seq_stop' type-id='type-id-210' visibility='default' filepath='./include/linux/kernfs.h' line='243' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='read' type-id='type-id-211' visibility='default' filepath='./include/linux/kernfs.h' line='245' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='atomic_write_len' type-id='type-id-101' visibility='default' filepath='./include/linux/kernfs.h' line='255' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='prealloc' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='262' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='write' type-id='type-id-211' visibility='default' filepath='./include/linux/kernfs.h' line='263' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='poll' type-id='type-id-212' visibility='default' filepath='./include/linux/kernfs.h' line='266' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='mmap' type-id='type-id-213' visibility='default' filepath='./include/linux/kernfs.h' line='269' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_open_file' size-in-bits='1088' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='200' column='1' id='type-id-214'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='202' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='file' type-id='type-id-120' visibility='default' filepath='./include/linux/kernfs.h' line='203' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='seq_file' type-id='type-id-215' visibility='default' filepath='./include/linux/kernfs.h' line='204' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='priv' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='205' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='mutex' type-id='type-id-149' visibility='default' filepath='./include/linux/kernfs.h' line='208' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='prealloc_mutex' type-id='type-id-149' visibility='default' filepath='./include/linux/kernfs.h' line='209' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='event' type-id='type-id-1' visibility='default' filepath='./include/linux/kernfs.h' line='210' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/kernfs.h' line='211' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='prealloc_buf' type-id='type-id-9' visibility='default' filepath='./include/linux/kernfs.h' line='212' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='atomic_write_len' type-id='type-id-101' visibility='default' filepath='./include/linux/kernfs.h' line='214' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7'>
+        <var-decl name='mmapped' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='215' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6'>
+        <var-decl name='released' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='216' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='vm_ops' type-id='type-id-119' visibility='default' filepath='./include/linux/kernfs.h' line='217' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='__poll_t' type-id='type-id-41' filepath='./include/uapi/linux/types.h' line='52' column='1' id='type-id-216'/>
+    <union-decl name='kernfs_node_id' size-in-bits='64' visibility='default' filepath='./include/linux/kernfs.h' line='108' column='1' id='type-id-183'>
+      <data-member access='private'>
+        <var-decl name='' type-id='type-id-217' visibility='default'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='id' type-id='type-id-126' visibility='default' filepath='./include/linux/kernfs.h' line='119' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='__anonymous_struct__9' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/kernfs.h' line='109' column='1' id='type-id-217'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ino' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='116' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='generation' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='117' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kref' size-in-bits='32' is-struct='yes' visibility='default' filepath='./include/linux/kref.h' line='19' column='1' id='type-id-70'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='refcount' type-id='type-id-218' visibility='default' filepath='./include/linux/kref.h' line='20' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='refcount_t' type-id='type-id-219' filepath='./include/linux/refcount.h' line='21' column='1' id='type-id-218'/>
+    <class-decl name='refcount_struct' size-in-bits='32' is-struct='yes' visibility='default' filepath='./include/linux/refcount.h' line='19' column='1' id='type-id-219'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='refs' type-id='type-id-129' visibility='default' filepath='./include/linux/refcount.h' line='20' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='50' column='1' id='type-id-220'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='attr' type-id='type-id-98' visibility='default' filepath='./include/linux/module.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='show' type-id='type-id-221' visibility='default' filepath='./include/linux/module.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='store' type-id='type-id-222' visibility='default' filepath='./include/linux/module.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='setup' type-id='type-id-223' visibility='default' filepath='./include/linux/module.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='test' type-id='type-id-224' visibility='default' filepath='./include/linux/module.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='free' type-id='type-id-225' visibility='default' filepath='./include/linux/module.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernel_symbol' size-in-bits='96' is-struct='yes' visibility='default' filepath='./include/linux/export.h' line='69' column='1' id='type-id-226'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='name_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='namespace_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='72' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s32' type-id='type-id-227' filepath='./include/asm-generic/int-ll64.h' line='20' column='1' id='type-id-228'/>
+    <typedef-decl name='__s32' type-id='type-id-1' filepath='./include/uapi/asm-generic/int-ll64.h' line='26' column='1' id='type-id-227'/>
+    <class-decl name='kernel_param' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='69' column='1' id='type-id-229'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/moduleparam.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/moduleparam.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ops' type-id='type-id-230' visibility='default' filepath='./include/linux/moduleparam.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='perm' type-id='type-id-231' visibility='default' filepath='./include/linux/moduleparam.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='208'>
+        <var-decl name='level' type-id='type-id-232' visibility='default' filepath='./include/linux/moduleparam.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='216'>
+        <var-decl name='flags' type-id='type-id-233' visibility='default' filepath='./include/linux/moduleparam.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='' type-id='type-id-234' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernel_param_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='47' column='1' id='type-id-235'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='flags' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='set' type-id='type-id-236' visibility='default' filepath='./include/linux/moduleparam.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='get' type-id='type-id-237' visibility='default' filepath='./include/linux/moduleparam.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='free' type-id='type-id-172' visibility='default' filepath='./include/linux/moduleparam.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s8' type-id='type-id-238' filepath='./include/asm-generic/int-ll64.h' line='16' column='1' id='type-id-232'/>
+    <typedef-decl name='__s8' type-id='type-id-38' filepath='./include/uapi/asm-generic/int-ll64.h' line='20' column='1' id='type-id-238'/>
+    <typedef-decl name='u8' type-id='type-id-239' filepath='./include/asm-generic/int-ll64.h' line='17' column='1' id='type-id-233'/>
+    <typedef-decl name='__u8' type-id='type-id-40' filepath='./include/uapi/asm-generic/int-ll64.h' line='21' column='1' id='type-id-239'/>
+    <union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='76' column='1' id='type-id-234'>
+      <data-member access='private'>
+        <var-decl name='arg' type-id='type-id-108' visibility='default' filepath='./include/linux/moduleparam.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='str' type-id='type-id-240' visibility='default' filepath='./include/linux/moduleparam.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='arr' type-id='type-id-241' visibility='default' filepath='./include/linux/moduleparam.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='kparam_string' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='86' column='1' id='type-id-242'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='maxlen' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='string' type-id='type-id-9' visibility='default' filepath='./include/linux/moduleparam.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kparam_array' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='92' column='1' id='type-id-243'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='max' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='elemsize' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='num' type-id='type-id-244' visibility='default' filepath='./include/linux/moduleparam.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ops' type-id='type-id-230' visibility='default' filepath='./include/linux/moduleparam.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='elem' type-id='type-id-108' visibility='default' filepath='./include/linux/moduleparam.h' line='98' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_layout' size-in-bits='640' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='307' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='base' type-id='type-id-108' visibility='default' filepath='./include/linux/module.h' line='309' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='311' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='text_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='313' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ro_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='315' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='ro_after_init_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='317' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='mtn' type-id='type-id-245' visibility='default' filepath='./include/linux/module.h' line='320' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mod_tree_node' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='302' column='1' id='type-id-245'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/module.h' line='303' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='node' type-id='type-id-246' visibility='default' filepath='./include/linux/module.h' line='304' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='latch_tree_node' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/rbtree_latch.h' line='40' column='1' id='type-id-246'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='node' type-id='type-id-35' visibility='default' filepath='./include/linux/rbtree_latch.h' line='41' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mod_arch_specific' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/module.h' line='8' column='1' id='type-id-61'/>
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-118'/>
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-247'/>
+    <pointer-type-def type-id='type-id-247' size-in-bits='64' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-248'/>
+    <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-106'/>
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-9'/>
+    <pointer-type-def type-id='type-id-158' size-in-bits='64' id='type-id-66'/>
+    <qualified-type-def type-id='type-id-103' const='yes' id='type-id-249'/>
+    <pointer-type-def type-id='type-id-249' size-in-bits='64' id='type-id-250'/>
+    <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-88'/>
+    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-251'/>
+    <pointer-type-def type-id='type-id-251' size-in-bits='64' id='type-id-52'/>
+    <pointer-type-def type-id='type-id-252' size-in-bits='64' id='type-id-253'/>
+    <qualified-type-def type-id='type-id-253' const='yes' id='type-id-81'/>
+    <qualified-type-def type-id='type-id-229' const='yes' id='type-id-254'/>
+    <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-255'/>
+    <qualified-type-def type-id='type-id-235' const='yes' id='type-id-256'/>
+    <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-230'/>
+    <qualified-type-def type-id='type-id-226' const='yes' id='type-id-257'/>
+    <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-54'/>
+    <qualified-type-def type-id='type-id-204' const='yes' id='type-id-258'/>
+    <pointer-type-def type-id='type-id-258' size-in-bits='64' id='type-id-202'/>
+    <qualified-type-def type-id='type-id-167' const='yes' id='type-id-259'/>
+    <pointer-type-def type-id='type-id-259' size-in-bits='64' id='type-id-260'/>
+    <pointer-type-def type-id='type-id-261' size-in-bits='64' id='type-id-89'/>
+    <qualified-type-def type-id='type-id-243' const='yes' id='type-id-262'/>
+    <pointer-type-def type-id='type-id-262' size-in-bits='64' id='type-id-241'/>
+    <qualified-type-def type-id='type-id-242' const='yes' id='type-id-263'/>
+    <pointer-type-def type-id='type-id-263' size-in-bits='64' id='type-id-240'/>
+    <qualified-type-def type-id='type-id-79' const='yes' id='type-id-264'/>
+    <pointer-type-def type-id='type-id-264' size-in-bits='64' id='type-id-73'/>
+    <qualified-type-def type-id='type-id-228' const='yes' id='type-id-265'/>
+    <pointer-type-def type-id='type-id-265' size-in-bits='64' id='type-id-55'/>
+    <qualified-type-def type-id='type-id-92' const='yes' id='type-id-266'/>
+    <pointer-type-def type-id='type-id-266' size-in-bits='64' id='type-id-86'/>
+    <qualified-type-def type-id='type-id-151' const='yes' id='type-id-231'/>
+    <qualified-type-def type-id='type-id-153' const='yes' id='type-id-267'/>
+    <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-150'/>
+    <qualified-type-def type-id='type-id-30' const='yes' id='type-id-268'/>
+    <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-119'/>
+    <pointer-type-def type-id='type-id-156' size-in-bits='64' id='type-id-135'/>
+    <pointer-type-def type-id='type-id-157' size-in-bits='64' id='type-id-160'/>
+    <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-58'/>
+    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-120'/>
+    <pointer-type-def type-id='type-id-269' size-in-bits='64' id='type-id-59'/>
+    <pointer-type-def type-id='type-id-270' size-in-bits='64' id='type-id-237'/>
+    <pointer-type-def type-id='type-id-271' size-in-bits='64' id='type-id-236'/>
+    <pointer-type-def type-id='type-id-272' size-in-bits='64' id='type-id-110'/>
+    <pointer-type-def type-id='type-id-273' size-in-bits='64' id='type-id-199'/>
+    <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-198'/>
+    <pointer-type-def type-id='type-id-275' size-in-bits='64' id='type-id-200'/>
+    <pointer-type-def type-id='type-id-276' size-in-bits='64' id='type-id-205'/>
+    <pointer-type-def type-id='type-id-277' size-in-bits='64' id='type-id-213'/>
+    <pointer-type-def type-id='type-id-278' size-in-bits='64' id='type-id-279'/>
+    <qualified-type-def type-id='type-id-279' const='yes' id='type-id-80'/>
+    <pointer-type-def type-id='type-id-280' size-in-bits='64' id='type-id-281'/>
+    <qualified-type-def type-id='type-id-281' const='yes' id='type-id-82'/>
+    <pointer-type-def type-id='type-id-282' size-in-bits='64' id='type-id-224'/>
+    <pointer-type-def type-id='type-id-283' size-in-bits='64' id='type-id-201'/>
+    <pointer-type-def type-id='type-id-284' size-in-bits='64' id='type-id-197'/>
+    <pointer-type-def type-id='type-id-285' size-in-bits='64' id='type-id-207'/>
+    <pointer-type-def type-id='type-id-229' size-in-bits='64' id='type-id-56'/>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-184'/>
+    <pointer-type-def type-id='type-id-181' size-in-bits='64' id='type-id-69'/>
+    <pointer-type-def type-id='type-id-214' size-in-bits='64' id='type-id-286'/>
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-203'/>
+    <pointer-type-def type-id='type-id-189' size-in-bits='64' id='type-id-188'/>
+    <pointer-type-def type-id='type-id-196' size-in-bits='64' id='type-id-192'/>
+    <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-287'/>
+    <pointer-type-def type-id='type-id-84' size-in-bits='64' id='type-id-68'/>
+    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-288'/>
+    <pointer-type-def type-id='type-id-63' size-in-bits='64' id='type-id-53'/>
+    <pointer-type-def type-id='type-id-71' size-in-bits='64' id='type-id-67'/>
+    <pointer-type-def type-id='type-id-174' size-in-bits='64' id='type-id-289'/>
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-133'/>
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-62'/>
+    <pointer-type-def type-id='type-id-112' size-in-bits='64' id='type-id-290'/>
+    <pointer-type-def type-id='type-id-123' size-in-bits='64' id='type-id-115'/>
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-64'/>
+    <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-51'/>
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-291'/>
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-65'/>
+    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-128'/>
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-292'/>
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-122'/>
+    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-215'/>
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-293'/>
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-159'/>
+    <pointer-type-def type-id='type-id-294' size-in-bits='64' id='type-id-212'/>
+    <pointer-type-def type-id='type-id-295' size-in-bits='64' id='type-id-169'/>
+    <pointer-type-def type-id='type-id-296' size-in-bits='64' id='type-id-109'/>
+    <pointer-type-def type-id='type-id-297' size-in-bits='64' id='type-id-211'/>
+    <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-93'/>
+    <pointer-type-def type-id='type-id-299' size-in-bits='64' id='type-id-94'/>
+    <pointer-type-def type-id='type-id-300' size-in-bits='64' id='type-id-221'/>
+    <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-222'/>
+    <pointer-type-def type-id='type-id-302' size-in-bits='64' id='type-id-104'/>
+    <pointer-type-def type-id='type-id-303' size-in-bits='64' id='type-id-105'/>
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-244'/>
+    <pointer-type-def type-id='type-id-304' size-in-bits='64' id='type-id-127'/>
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-136'/>
+    <pointer-type-def type-id='type-id-113' size-in-bits='64' id='type-id-114'/>
+    <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-206'/>
+    <pointer-type-def type-id='type-id-306' size-in-bits='64' id='type-id-85'/>
+    <pointer-type-def type-id='type-id-307' size-in-bits='64' id='type-id-91'/>
+    <pointer-type-def type-id='type-id-308' size-in-bits='64' id='type-id-225'/>
+    <pointer-type-def type-id='type-id-309' size-in-bits='64' id='type-id-223'/>
+    <pointer-type-def type-id='type-id-310' size-in-bits='64' id='type-id-210'/>
+    <pointer-type-def type-id='type-id-311' size-in-bits='64' id='type-id-172'/>
+    <pointer-type-def type-id='type-id-312' size-in-bits='64' id='type-id-164'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-108'/>
+    <pointer-type-def type-id='type-id-313' size-in-bits='64' id='type-id-170'/>
+    <pointer-type-def type-id='type-id-314' size-in-bits='64' id='type-id-90'/>
+    <pointer-type-def type-id='type-id-315' size-in-bits='64' id='type-id-208'/>
+    <pointer-type-def type-id='type-id-316' size-in-bits='64' id='type-id-209'/>
+    <pointer-type-def type-id='type-id-317' size-in-bits='64' id='type-id-171'/>
+    <pointer-type-def type-id='type-id-138' size-in-bits='64' id='type-id-318'/>
+    <var-decl name='__this_module' type-id='type-id-47' visibility='default' filepath='./include/linux/export.h' line='15' column='1'/>
+    <function-type size-in-bits='64' id='type-id-252'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-52'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-261'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-260'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-269'>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-270'>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-255'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-271'>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-255'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-272'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-114'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-273'>
+      <parameter type-id='type-id-69'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-274'>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-99'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-275'>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-276'>
+      <parameter type-id='type-id-286'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-277'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-114'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-278'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-280'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-288'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-282'>
+      <parameter type-id='type-id-64'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-283'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-188'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-284'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-188'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-285'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-294'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-292'/>
+      <return type-id='type-id-216'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-295'>
+      <return type-id='type-id-57'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-296'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-112'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-297'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-101'/>
+      <parameter type-id='type-id-112'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-298'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-299'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-300'>
+      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-291'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-301'>
+      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-291'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-302'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-1'/>
+      <return type-id='type-id-99'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-303'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-1'/>
+      <return type-id='type-id-99'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-304'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-5'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-305'>
+      <parameter type-id='type-id-286'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-306'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-307'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-289'/>
+      <parameter type-id='type-id-287'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-308'>
+      <parameter type-id='type-id-64'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-309'>
+      <parameter type-id='type-id-64'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-310'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-311'>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-312'>
+      <parameter type-id='type-id-318'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-313'>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-314'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-315'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-290'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-316'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <parameter type-id='type-id-290'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-317'>
+      <parameter type-id='type-id-293'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-abidiff/test-crc-2.xml b/tests/data/test-abidiff/test-crc-2.xml
new file mode 100644
index 0000000..bf21ca6
--- /dev/null
+++ b/tests/data/test-abidiff/test-crc-2.xml
@@ -0,0 +1,1601 @@
+<abi-corpus path='tests/data/test-symtab/kernel-modversions/one_of_each.ko' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='exported_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe52d5bd0'/>
+    <elf-symbol name='exported_function_gpl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfda43846'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='exported_variable' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee94d699'/>
+    <elf-symbol name='exported_variable_gpl' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41336c46'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='tests/data/test-symtab/kernel-modversions/one_of_each.c' comp-dir-path='/ws/contrib/linux' language='LANG_C89'>
+    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
+    <type-decl name='void' id='type-id-2'/>
+    <var-decl name='exported_variable' type-id='type-id-1' mangled-name='exported_variable' visibility='default' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='9' column='1' elf-symbol-id='exported_variable'/>
+    <var-decl name='exported_variable_gpl' type-id='type-id-1' mangled-name='exported_variable_gpl' visibility='default' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='12' column='1' elf-symbol-id='exported_variable_gpl'/>
+    <function-decl name='exported_function' mangled-name='exported_function' filepath='tests/data/test-symtab/kernel-modversions/one_of_each.c' line='3' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='exported_function'>
+      <return type-id='type-id-2'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='tests/data/test-symtab/kernel-modversions/one_of_each.mod.c' comp-dir-path='/ws/contrib/linux' language='LANG_C89'>
+
+
+
+
+
+
+
+
+    <array-type-def dimensions='1' type-id='type-id-3' size-in-bits='256' id='type-id-4'>
+      <subrange length='4' type-id='type-id-5' id='type-id-6'/>
+
+    </array-type-def>
+    <type-decl name='bool' size-in-bits='8' id='type-id-7'/>
+    <type-decl name='char' size-in-bits='8' id='type-id-8'/>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='2048' id='type-id-10'>
+      <subrange length='32' type-id='type-id-5' id='type-id-11'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='192' id='type-id-12'>
+      <subrange length='3' type-id='type-id-5' id='type-id-13'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='16384' id='type-id-14'>
+      <subrange length='2048' type-id='type-id-5' id='type-id-15'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='448' id='type-id-16'>
+      <subrange length='56' type-id='type-id-5' id='type-id-17'/>
+
+    </array-type-def>
+    <class-decl name='anon_vma' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-18'/>
+    <class-decl name='exception_table_entry' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-19'/>
+    <class-decl name='file' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-20'/>
+    <class-decl name='kernfs_iattrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-21'/>
+    <class-decl name='kernfs_open_node' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-22'/>
+    <class-decl name='linux_binfmt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-23'/>
+    <class-decl name='module_param_attrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-24'/>
+    <class-decl name='poll_table_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-25'/>
+    <class-decl name='seq_file' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-26'/>
+    <class-decl name='sock' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-27'/>
+    <class-decl name='task_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-28'/>
+    <class-decl name='user_namespace' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-29'/>
+    <class-decl name='vm_operations_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-30'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-31'/>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-32'/>
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-33'/>
+    <array-type-def dimensions='1' type-id='type-id-34' size-in-bits='384' id='type-id-35'>
+      <subrange length='2' type-id='type-id-5' id='type-id-36'/>
+
+    </array-type-def>
+    <type-decl name='short int' size-in-bits='16' id='type-id-37'/>
+    <type-decl name='signed char' size-in-bits='8' id='type-id-38'/>
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-39'/>
+    <type-decl name='unsigned char' size-in-bits='8' id='type-id-40'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-41'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-5'/>
+    <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='2816' id='type-id-42'>
+      <subrange length='44' type-id='type-id-5' id='type-id-43'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='infinite' id='type-id-44'>
+      <subrange length='infinite' type-id='type-id-5' id='type-id-45'/>
+
+    </array-type-def>
+    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-46'/>
+    <class-decl name='module' size-in-bits='4608' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='347' column='1' id='type-id-47'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='state' type-id='type-id-48' visibility='default' filepath='./include/linux/module.h' line='348' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/module.h' line='351' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='name' type-id='type-id-16' visibility='default' filepath='./include/linux/module.h' line='354' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='mkobj' type-id='type-id-50' visibility='default' filepath='./include/linux/module.h' line='357' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='modinfo_attrs' type-id='type-id-51' visibility='default' filepath='./include/linux/module.h' line='358' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='version' type-id='type-id-52' visibility='default' filepath='./include/linux/module.h' line='359' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='srcversion' type-id='type-id-52' visibility='default' filepath='./include/linux/module.h' line='360' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='holders_dir' type-id='type-id-53' visibility='default' filepath='./include/linux/module.h' line='361' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='364' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='365' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='num_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='366' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='kp' type-id='type-id-56' visibility='default' filepath='./include/linux/module.h' line='372' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='num_kp' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='373' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1952'>
+        <var-decl name='num_gpl_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='376' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='gpl_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='377' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='gpl_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='378' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='unused_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='382' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='unused_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='383' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='num_unused_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='384' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2272'>
+        <var-decl name='num_unused_gpl_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='387' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='unused_gpl_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='388' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='unused_gpl_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='389' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='async_probe_requested' type-id='type-id-57' visibility='default' filepath='./include/linux/module.h' line='397' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2496'>
+        <var-decl name='gpl_future_syms' type-id='type-id-54' visibility='default' filepath='./include/linux/module.h' line='400' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2560'>
+        <var-decl name='gpl_future_crcs' type-id='type-id-55' visibility='default' filepath='./include/linux/module.h' line='401' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2624'>
+        <var-decl name='num_gpl_future_syms' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='402' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2656'>
+        <var-decl name='num_exentries' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='405' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2688'>
+        <var-decl name='extable' type-id='type-id-58' visibility='default' filepath='./include/linux/module.h' line='406' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2752'>
+        <var-decl name='init' type-id='type-id-59' visibility='default' filepath='./include/linux/module.h' line='409' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3072'>
+        <var-decl name='core_layout' type-id='type-id-60' visibility='default' filepath='./include/linux/module.h' line='412' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3712'>
+        <var-decl name='init_layout' type-id='type-id-60' visibility='default' filepath='./include/linux/module.h' line='413' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4352'>
+        <var-decl name='arch' type-id='type-id-61' visibility='default' filepath='./include/linux/module.h' line='416' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4352'>
+        <var-decl name='taints' type-id='type-id-5' visibility='default' filepath='./include/linux/module.h' line='418' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4416'>
+        <var-decl name='args' type-id='type-id-9' visibility='default' filepath='./include/linux/module.h' line='441' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='module_state' filepath='./include/linux/module.h' line='295' column='1' id='type-id-48'>
+      <underlying-type type-id='type-id-39'/>
+      <enumerator name='MODULE_STATE_LIVE' value='0'/>
+      <enumerator name='MODULE_STATE_COMING' value='1'/>
+      <enumerator name='MODULE_STATE_GOING' value='2'/>
+      <enumerator name='MODULE_STATE_UNFORMED' value='3'/>
+    </enum-decl>
+    <class-decl name='list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/types.h' line='181' column='1' id='type-id-49'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='next' type-id='type-id-62' visibility='default' filepath='./include/linux/types.h' line='182' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='prev' type-id='type-id-62' visibility='default' filepath='./include/linux/types.h' line='182' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_kobject' size-in-bits='768' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='42' column='1' id='type-id-50'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kobj' type-id='type-id-63' visibility='default' filepath='./include/linux/module.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/module.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='drivers_dir' type-id='type-id-53' visibility='default' filepath='./include/linux/module.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='mp' type-id='type-id-65' visibility='default' filepath='./include/linux/module.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='kobj_completion' type-id='type-id-66' visibility='default' filepath='./include/linux/module.h' line='47' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobject' size-in-bits='512' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='65' column='1' id='type-id-63'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/kobject.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='entry' type-id='type-id-49' visibility='default' filepath='./include/linux/kobject.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='parent' type-id='type-id-53' visibility='default' filepath='./include/linux/kobject.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='kset' type-id='type-id-67' visibility='default' filepath='./include/linux/kobject.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='ktype' type-id='type-id-68' visibility='default' filepath='./include/linux/kobject.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='sd' type-id='type-id-69' visibility='default' filepath='./include/linux/kobject.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='kref' type-id='type-id-70' visibility='default' filepath='./include/linux/kobject.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <var-decl name='state_initialized' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='30'>
+        <var-decl name='state_in_sysfs' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='29'>
+        <var-decl name='state_add_uevent_sent' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28'>
+        <var-decl name='state_remove_uevent_sent' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='79' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27'>
+        <var-decl name='uevent_suppress' type-id='type-id-41' visibility='default' filepath='./include/linux/kobject.h' line='80' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kset' size-in-bits='704' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='193' column='1' id='type-id-71'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/kobject.h' line='194' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='list_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/kobject.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='kobj' type-id='type-id-63' visibility='default' filepath='./include/linux/kobject.h' line='196' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='uevent_ops' type-id='type-id-73' visibility='default' filepath='./include/linux/kobject.h' line='197' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='spinlock_t' type-id='type-id-74' filepath='./include/linux/spinlock_types.h' line='73' column='1' id='type-id-72'/>
+    <class-decl name='spinlock' is-struct='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='61' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='' type-id='type-id-75' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='62' column='1' id='type-id-75'>
+      <data-member access='private'>
+        <var-decl name='rlock' type-id='type-id-76' visibility='default' filepath='./include/linux/spinlock_types.h' line='63' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='raw_spinlock' is-struct='yes' visibility='default' filepath='./include/linux/spinlock_types.h' line='20' column='1' id='type-id-76'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='raw_lock' type-id='type-id-77' visibility='default' filepath='./include/linux/spinlock_types.h' line='21' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='arch_spinlock_t' type-id='type-id-78' filepath='./include/linux/spinlock_types_up.h' line='25' column='1' id='type-id-77'/>
+    <class-decl name='__anonymous_struct__' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-77' visibility='default' filepath='./include/linux/spinlock_types_up.h' line='25' column='1' id='type-id-78'/>
+    <class-decl name='kset_uevent_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='157' column='1' id='type-id-79'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='filter' type-id='type-id-80' visibility='default' filepath='./include/linux/kobject.h' line='158' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='name' type-id='type-id-81' visibility='default' filepath='./include/linux/kobject.h' line='159' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='uevent' type-id='type-id-82' visibility='default' filepath='./include/linux/kobject.h' line='160' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobj_uevent_env' size-in-bits='18688' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='149' column='1' id='type-id-83'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='argv' type-id='type-id-12' visibility='default' filepath='./include/linux/kobject.h' line='150' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='envp' type-id='type-id-10' visibility='default' filepath='./include/linux/kobject.h' line='151' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='envp_idx' type-id='type-id-1' visibility='default' filepath='./include/linux/kobject.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2272'>
+        <var-decl name='buf' type-id='type-id-14' visibility='default' filepath='./include/linux/kobject.h' line='153' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='18656'>
+        <var-decl name='buflen' type-id='type-id-1' visibility='default' filepath='./include/linux/kobject.h' line='154' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kobj_type' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/kobject.h' line='139' column='1' id='type-id-84'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='release' type-id='type-id-85' visibility='default' filepath='./include/linux/kobject.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='sysfs_ops' type-id='type-id-86' visibility='default' filepath='./include/linux/kobject.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='default_attrs' type-id='type-id-87' visibility='default' filepath='./include/linux/kobject.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='default_groups' type-id='type-id-88' visibility='default' filepath='./include/linux/kobject.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='child_ns_type' type-id='type-id-89' visibility='default' filepath='./include/linux/kobject.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='namespace' type-id='type-id-90' visibility='default' filepath='./include/linux/kobject.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='get_ownership' type-id='type-id-91' visibility='default' filepath='./include/linux/kobject.h' line='146' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='sysfs_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='223' column='1' id='type-id-92'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='show' type-id='type-id-93' visibility='default' filepath='./include/linux/sysfs.h' line='224' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='store' type-id='type-id-94' visibility='default' filepath='./include/linux/sysfs.h' line='225' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='ssize_t' type-id='type-id-95' filepath='./include/linux/types.h' line='60' column='1' id='type-id-96'/>
+    <typedef-decl name='__kernel_ssize_t' type-id='type-id-97' filepath='./include/uapi/asm-generic/posix_types.h' line='73' column='1' id='type-id-95'/>
+    <typedef-decl name='__kernel_long_t' type-id='type-id-31' filepath='./include/uapi/asm-generic/posix_types.h' line='15' column='1' id='type-id-97'/>
+    <class-decl name='attribute' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='30' column='1' id='type-id-98'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/sysfs.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mode' type-id='type-id-99' visibility='default' filepath='./include/linux/sysfs.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='umode_t' type-id='type-id-46' filepath='./include/linux/types.h' line='19' column='1' id='type-id-99'/>
+    <typedef-decl name='size_t' type-id='type-id-100' filepath='./include/linux/types.h' line='55' column='1' id='type-id-101'/>
+    <typedef-decl name='__kernel_size_t' type-id='type-id-102' filepath='./include/uapi/asm-generic/posix_types.h' line='72' column='1' id='type-id-100'/>
+    <typedef-decl name='__kernel_ulong_t' type-id='type-id-5' filepath='./include/uapi/asm-generic/posix_types.h' line='16' column='1' id='type-id-102'/>
+    <class-decl name='attribute_group' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='84' column='1' id='type-id-103'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/sysfs.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='is_visible' type-id='type-id-104' visibility='default' filepath='./include/linux/sysfs.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='is_bin_visible' type-id='type-id-105' visibility='default' filepath='./include/linux/sysfs.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='attrs' type-id='type-id-87' visibility='default' filepath='./include/linux/sysfs.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='bin_attrs' type-id='type-id-106' visibility='default' filepath='./include/linux/sysfs.h' line='91' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='bin_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/sysfs.h' line='161' column='1' id='type-id-107'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='attr' type-id='type-id-98' visibility='default' filepath='./include/linux/sysfs.h' line='162' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='size' type-id='type-id-101' visibility='default' filepath='./include/linux/sysfs.h' line='163' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='private' type-id='type-id-108' visibility='default' filepath='./include/linux/sysfs.h' line='164' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='read' type-id='type-id-109' visibility='default' filepath='./include/linux/sysfs.h' line='165' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='write' type-id='type-id-109' visibility='default' filepath='./include/linux/sysfs.h' line='167' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='mmap' type-id='type-id-110' visibility='default' filepath='./include/linux/sysfs.h' line='169' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='loff_t' type-id='type-id-111' filepath='./include/linux/types.h' line='46' column='1' id='type-id-112'/>
+    <typedef-decl name='__kernel_loff_t' type-id='type-id-32' filepath='./include/uapi/asm-generic/posix_types.h' line='88' column='1' id='type-id-111'/>
+    <class-decl name='vm_area_struct' size-in-bits='1408' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='292' column='1' id='type-id-113'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='vm_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='295' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='vm_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='296' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='vm_next' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='300' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='vm_prev' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='300' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='vm_rb' type-id='type-id-34' visibility='default' filepath='./include/linux/mm_types.h' line='302' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='rb_subtree_gap' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='310' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='vm_mm' type-id='type-id-115' visibility='default' filepath='./include/linux/mm_types.h' line='314' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='vm_page_prot' type-id='type-id-116' visibility='default' filepath='./include/linux/mm_types.h' line='315' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='vm_flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='316' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='shared' type-id='type-id-117' visibility='default' filepath='./include/linux/mm_types.h' line='325' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='anon_vma_chain' type-id='type-id-49' visibility='default' filepath='./include/linux/mm_types.h' line='333' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='anon_vma' type-id='type-id-118' visibility='default' filepath='./include/linux/mm_types.h' line='335' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='vm_ops' type-id='type-id-119' visibility='default' filepath='./include/linux/mm_types.h' line='338' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='vm_pgoff' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='341' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='vm_file' type-id='type-id-120' visibility='default' filepath='./include/linux/mm_types.h' line='343' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='vm_private_data' type-id='type-id-108' visibility='default' filepath='./include/linux/mm_types.h' line='344' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='vm_userfaultfd_ctx' type-id='type-id-121' visibility='default' filepath='./include/linux/mm_types.h' line='355' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='rb_node' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/rbtree.h' line='24' column='1' id='type-id-34'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__rb_parent_color' type-id='type-id-5' visibility='default' filepath='./include/linux/rbtree.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='rb_right' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='rb_left' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='27' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mm_struct' size-in-bits='6720' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='370' column='1' id='type-id-123'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='' type-id='type-id-124' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6720'>
+        <var-decl name='cpu_bitmap' type-id='type-id-44' visibility='default' filepath='./include/linux/mm_types.h' line='533' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__1' size-in-bits='6720' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/mm_types.h' line='371' column='1' id='type-id-124'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='mmap' type-id='type-id-114' visibility='default' filepath='./include/linux/mm_types.h' line='372' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mm_rb' type-id='type-id-125' visibility='default' filepath='./include/linux/mm_types.h' line='373' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='vmacache_seqnum' type-id='type-id-126' visibility='default' filepath='./include/linux/mm_types.h' line='374' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='get_unmapped_area' type-id='type-id-127' visibility='default' filepath='./include/linux/mm_types.h' line='376' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='mmap_base' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='380' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='mmap_legacy_base' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='381' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='task_size' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='387' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='highest_vm_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='388' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='pgd' type-id='type-id-128' visibility='default' filepath='./include/linux/mm_types.h' line='389' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='mm_users' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='410' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='608'>
+        <var-decl name='mm_count' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='419' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='pgtables_bytes' type-id='type-id-3' visibility='default' filepath='./include/linux/mm_types.h' line='422' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='map_count' type-id='type-id-1' visibility='default' filepath='./include/linux/mm_types.h' line='424' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='736'>
+        <var-decl name='page_table_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mm_types.h' line='426' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='mmap_sem' type-id='type-id-130' visibility='default' filepath='./include/linux/mm_types.h' line='429' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='mmlist' type-id='type-id-49' visibility='default' filepath='./include/linux/mm_types.h' line='431' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='hiwater_rss' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='438' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='hiwater_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='439' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='total_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='441' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='locked_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='442' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='pinned_vm' type-id='type-id-131' visibility='default' filepath='./include/linux/mm_types.h' line='443' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='data_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='444' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='exec_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='445' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='stack_vm' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='446' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='def_flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='447' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='arg_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mm_types.h' line='449' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='start_code' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='end_code' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='start_data' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='end_data' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='450' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='start_brk' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='brk' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='start_stack' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='451' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='arg_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='arg_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='env_start' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='env_end' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='452' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='saved_auxv' type-id='type-id-42' visibility='default' filepath='./include/linux/mm_types.h' line='454' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5248'>
+        <var-decl name='rss_stat' type-id='type-id-132' visibility='default' filepath='./include/linux/mm_types.h' line='460' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5504'>
+        <var-decl name='binfmt' type-id='type-id-133' visibility='default' filepath='./include/linux/mm_types.h' line='462' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5568'>
+        <var-decl name='context' type-id='type-id-134' visibility='default' filepath='./include/linux/mm_types.h' line='465' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6144'>
+        <var-decl name='flags' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='467' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6208'>
+        <var-decl name='core_state' type-id='type-id-135' visibility='default' filepath='./include/linux/mm_types.h' line='469' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6272'>
+        <var-decl name='user_ns' type-id='type-id-136' visibility='default' filepath='./include/linux/mm_types.h' line='488' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6336'>
+        <var-decl name='exe_file' type-id='type-id-120' visibility='default' filepath='./include/linux/mm_types.h' line='491' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6400'>
+        <var-decl name='tlb_flush_pending' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='517' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6432'>
+        <var-decl name='tlb_flush_batched' type-id='type-id-57' visibility='default' filepath='./include/linux/mm_types.h' line='520' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6440'>
+        <var-decl name='uprobes_state' type-id='type-id-137' visibility='default' filepath='./include/linux/mm_types.h' line='522' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6464'>
+        <var-decl name='async_put_work' type-id='type-id-138' visibility='default' filepath='./include/linux/mm_types.h' line='526' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='rb_root' size-in-bits='64' is-struct='yes' visibility='default' filepath='./include/linux/rbtree.h' line='31' column='1' id='type-id-125'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='rb_node' type-id='type-id-122' visibility='default' filepath='./include/linux/rbtree.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='u64' type-id='type-id-139' filepath='./include/asm-generic/int-ll64.h' line='23' column='1' id='type-id-126'/>
+    <typedef-decl name='__u64' type-id='type-id-33' filepath='./include/uapi/asm-generic/int-ll64.h' line='31' column='1' id='type-id-139'/>
+    <typedef-decl name='pgd_t' type-id='type-id-140' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1' id='type-id-141'/>
+    <class-decl name='__anonymous_struct__2' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-141' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1' id='type-id-140'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='pgd' type-id='type-id-142' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='267' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='pgdval_t' type-id='type-id-5' filepath='./arch/x86/include/asm/pgtable_64_types.h' line='18' column='1' id='type-id-142'/>
+    <typedef-decl name='atomic_t' type-id='type-id-143' filepath='./include/linux/types.h' line='173' column='1' id='type-id-129'/>
+    <class-decl name='__anonymous_struct__3' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-129' visibility='default' filepath='./include/linux/types.h' line='171' column='1' id='type-id-143'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='counter' type-id='type-id-1' visibility='default' filepath='./include/linux/types.h' line='172' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='atomic_long_t' type-id='type-id-131' filepath='./include/asm-generic/atomic-long.h' line='12' column='1' id='type-id-3'/>
+    <typedef-decl name='atomic64_t' type-id='type-id-144' filepath='./include/linux/types.h' line='178' column='1' id='type-id-131'/>
+    <class-decl name='__anonymous_struct__4' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-131' visibility='default' filepath='./include/linux/types.h' line='176' column='1' id='type-id-144'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='counter' type-id='type-id-145' visibility='default' filepath='./include/linux/types.h' line='177' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s64' type-id='type-id-146' filepath='./include/asm-generic/int-ll64.h' line='22' column='1' id='type-id-145'/>
+    <typedef-decl name='__s64' type-id='type-id-32' filepath='./include/uapi/asm-generic/int-ll64.h' line='30' column='1' id='type-id-146'/>
+    <class-decl name='rw_semaphore' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/rwsem.h' line='35' column='1' id='type-id-130'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-3' visibility='default' filepath='./include/linux/rwsem.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='owner' type-id='type-id-3' visibility='default' filepath='./include/linux/rwsem.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='wait_lock' type-id='type-id-147' visibility='default' filepath='./include/linux/rwsem.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='wait_list' type-id='type-id-49' visibility='default' filepath='./include/linux/rwsem.h' line='47' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='raw_spinlock_t' type-id='type-id-76' filepath='./include/linux/spinlock_types.h' line='29' column='1' id='type-id-147'/>
+    <class-decl name='mm_rss_stat' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/mm_types_task.h' line='60' column='1' id='type-id-132'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-4' visibility='default' filepath='./include/linux/mm_types_task.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='mm_context_t' type-id='type-id-148' filepath='./arch/x86/include/asm/mmu.h' line='57' column='1' id='type-id-134'/>
+    <class-decl name='__anonymous_struct__5' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-134' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='13' column='1' id='type-id-148'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ctx_id' type-id='type-id-126' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='18' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tlb_gen' type-id='type-id-131' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ia32_compat' type-id='type-id-46' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='lock' type-id='type-id-149' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='vdso' type-id='type-id-108' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='vdso_image' type-id='type-id-150' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='perf_rdpmc_allowed' type-id='type-id-129' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='544'>
+        <var-decl name='pkey_allocation_map' type-id='type-id-151' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='560'>
+        <var-decl name='execute_only_pkey' type-id='type-id-152' visibility='default' filepath='./arch/x86/include/asm/mmu.h' line='51' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mutex' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/mutex.h' line='53' column='1' id='type-id-149'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='owner' type-id='type-id-3' visibility='default' filepath='./include/linux/mutex.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/mutex.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait_list' type-id='type-id-49' visibility='default' filepath='./include/linux/mutex.h' line='59' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='vdso_image' size-in-bits='832' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='13' column='1' id='type-id-153'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='data' type-id='type-id-108' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='14' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='size' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='15' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='alt' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='alt_len' type-id='type-id-5' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='sym_vvar_start' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='19' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='sym_vvar_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='sym_pvclock_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='sym_hvclock_page' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='23' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='sym_VDSO32_NOTE_MASK' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='sym___kernel_sigreturn' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='sym___kernel_rt_sigreturn' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='sym___kernel_vsyscall' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='sym_int80_landing_pad' type-id='type-id-31' visibility='default' filepath='./arch/x86/include/asm/vdso.h' line='28' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='u16' type-id='type-id-154' filepath='./include/asm-generic/int-ll64.h' line='19' column='1' id='type-id-151'/>
+    <typedef-decl name='__u16' type-id='type-id-46' filepath='./include/uapi/asm-generic/int-ll64.h' line='24' column='1' id='type-id-154'/>
+    <typedef-decl name='s16' type-id='type-id-155' filepath='./include/asm-generic/int-ll64.h' line='18' column='1' id='type-id-152'/>
+    <typedef-decl name='__s16' type-id='type-id-37' filepath='./include/uapi/asm-generic/int-ll64.h' line='23' column='1' id='type-id-155'/>
+    <class-decl name='core_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='363' column='1' id='type-id-156'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='nr_threads' type-id='type-id-129' visibility='default' filepath='./include/linux/mm_types.h' line='364' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='dumper' type-id='type-id-157' visibility='default' filepath='./include/linux/mm_types.h' line='365' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='startup' type-id='type-id-158' visibility='default' filepath='./include/linux/mm_types.h' line='366' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='core_thread' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='358' column='1' id='type-id-157'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='task' type-id='type-id-159' visibility='default' filepath='./include/linux/mm_types.h' line='359' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='next' type-id='type-id-160' visibility='default' filepath='./include/linux/mm_types.h' line='360' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='completion' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/completion.h' line='26' column='1' id='type-id-158'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='done' type-id='type-id-41' visibility='default' filepath='./include/linux/completion.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='wait' type-id='type-id-161' visibility='default' filepath='./include/linux/completion.h' line='28' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='wait_queue_head_t' type-id='type-id-162' filepath='./include/linux/wait.h' line='38' column='1' id='type-id-161'/>
+    <class-decl name='wait_queue_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/wait.h' line='34' column='1' id='type-id-162'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='lock' type-id='type-id-72' visibility='default' filepath='./include/linux/wait.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='head' type-id='type-id-49' visibility='default' filepath='./include/linux/wait.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='bool' type-id='type-id-7' filepath='./include/linux/types.h' line='30' column='1' id='type-id-57'/>
+    <class-decl name='uprobes_state' is-struct='yes' visibility='default' filepath='./include/linux/uprobes.h' line='142' column='1' id='type-id-137'/>
+    <class-decl name='work_struct' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/workqueue.h' line='102' column='1' id='type-id-138'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='data' type-id='type-id-3' visibility='default' filepath='./include/linux/workqueue.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='entry' type-id='type-id-49' visibility='default' filepath='./include/linux/workqueue.h' line='104' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='func' type-id='type-id-163' visibility='default' filepath='./include/linux/workqueue.h' line='105' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='work_func_t' type-id='type-id-164' filepath='./include/linux/workqueue.h' line='21' column='1' id='type-id-163'/>
+    <typedef-decl name='pgprot_t' type-id='type-id-165' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1' id='type-id-116'/>
+    <class-decl name='pgprot' size-in-bits='64' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1' id='type-id-165'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='pgprot' type-id='type-id-166' visibility='default' filepath='./arch/x86/include/asm/pgtable_types.h' line='265' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='pgprotval_t' type-id='type-id-5' filepath='./arch/x86/include/asm/pgtable_64_types.h' line='19' column='1' id='type-id-166'/>
+    <class-decl name='__anonymous_struct__6' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/mm_types.h' line='322' column='1' id='type-id-117'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='rb' type-id='type-id-34' visibility='default' filepath='./include/linux/mm_types.h' line='323' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rb_subtree_last' type-id='type-id-5' visibility='default' filepath='./include/linux/mm_types.h' line='324' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='vm_userfaultfd_ctx' is-struct='yes' visibility='default' filepath='./include/linux/mm_types.h' line='283' column='1' id='type-id-121'/>
+    <class-decl name='kobj_ns_type_operations' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/kobject_ns.h' line='39' column='1' id='type-id-167'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='type' type-id='type-id-168' visibility='default' filepath='./include/linux/kobject_ns.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='current_may_mount' type-id='type-id-169' visibility='default' filepath='./include/linux/kobject_ns.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='grab_current_ns' type-id='type-id-170' visibility='default' filepath='./include/linux/kobject_ns.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='netlink_ns' type-id='type-id-171' visibility='default' filepath='./include/linux/kobject_ns.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='initial_ns' type-id='type-id-170' visibility='default' filepath='./include/linux/kobject_ns.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='drop_ns' type-id='type-id-172' visibility='default' filepath='./include/linux/kobject_ns.h' line='45' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='kobj_ns_type' filepath='./include/linux/kobject_ns.h' line='26' column='1' id='type-id-168'>
+      <underlying-type type-id='type-id-39'/>
+      <enumerator name='KOBJ_NS_TYPE_NONE' value='0'/>
+      <enumerator name='KOBJ_NS_TYPE_NET' value='1'/>
+      <enumerator name='KOBJ_NS_TYPES' value='2'/>
+    </enum-decl>
+    <typedef-decl name='kuid_t' type-id='type-id-173' filepath='./include/linux/uidgid.h' line='23' column='1' id='type-id-174'/>
+    <class-decl name='__anonymous_struct__7' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-174' visibility='default' filepath='./include/linux/uidgid.h' line='21' column='1' id='type-id-173'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='val' type-id='type-id-175' visibility='default' filepath='./include/linux/uidgid.h' line='22' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='uid_t' type-id='type-id-176' filepath='./include/linux/types.h' line='32' column='1' id='type-id-175'/>
+    <typedef-decl name='__kernel_uid32_t' type-id='type-id-41' filepath='./include/uapi/asm-generic/posix_types.h' line='49' column='1' id='type-id-176'/>
+    <typedef-decl name='kgid_t' type-id='type-id-177' filepath='./include/linux/uidgid.h' line='28' column='1' id='type-id-178'/>
+    <class-decl name='__anonymous_struct__8' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-178' visibility='default' filepath='./include/linux/uidgid.h' line='26' column='1' id='type-id-177'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='val' type-id='type-id-179' visibility='default' filepath='./include/linux/uidgid.h' line='27' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='gid_t' type-id='type-id-180' filepath='./include/linux/types.h' line='33' column='1' id='type-id-179'/>
+    <typedef-decl name='__kernel_gid32_t' type-id='type-id-41' filepath='./include/uapi/asm-generic/posix_types.h' line='50' column='1' id='type-id-180'/>
+    <class-decl name='kernfs_node' size-in-bits='1024' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='131' column='1' id='type-id-181'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='count' type-id='type-id-129' visibility='default' filepath='./include/linux/kernfs.h' line='132' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='active' type-id='type-id-129' visibility='default' filepath='./include/linux/kernfs.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='parent' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/kernfs.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rb' type-id='type-id-34' visibility='default' filepath='./include/linux/kernfs.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='ns' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='hash' type-id='type-id-41' visibility='default' filepath='./include/linux/kernfs.h' line='149' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='' type-id='type-id-182' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='priv' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='156' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='id' type-id='type-id-183' visibility='default' filepath='./include/linux/kernfs.h' line='158' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='flags' type-id='type-id-46' visibility='default' filepath='./include/linux/kernfs.h' line='159' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='912'>
+        <var-decl name='mode' type-id='type-id-99' visibility='default' filepath='./include/linux/kernfs.h' line='160' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='iattr' type-id='type-id-184' visibility='default' filepath='./include/linux/kernfs.h' line='161' column='1'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__1' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='./include/linux/kernfs.h' line='150' column='1' id='type-id-182'>
+      <data-member access='private'>
+        <var-decl name='dir' type-id='type-id-185' visibility='default' filepath='./include/linux/kernfs.h' line='151' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='symlink' type-id='type-id-186' visibility='default' filepath='./include/linux/kernfs.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='attr' type-id='type-id-187' visibility='default' filepath='./include/linux/kernfs.h' line='153' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='kernfs_elem_dir' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='84' column='1' id='type-id-185'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='subdirs' type-id='type-id-5' visibility='default' filepath='./include/linux/kernfs.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='children' type-id='type-id-125' visibility='default' filepath='./include/linux/kernfs.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='root' type-id='type-id-188' visibility='default' filepath='./include/linux/kernfs.h' line='93' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_root' size-in-bits='704' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='183' column='1' id='type-id-189'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='185' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='flags' type-id='type-id-41' visibility='default' filepath='./include/linux/kernfs.h' line='186' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ino_idr' type-id='type-id-190' visibility='default' filepath='./include/linux/kernfs.h' line='189' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='last_ino' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='190' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='next_generation' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='191' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='syscall_ops' type-id='type-id-192' visibility='default' filepath='./include/linux/kernfs.h' line='192' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='supers' type-id='type-id-49' visibility='default' filepath='./include/linux/kernfs.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='deactivate_waitq' type-id='type-id-161' visibility='default' filepath='./include/linux/kernfs.h' line='197' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='idr' size-in-bits='192' is-struct='yes' visibility='default' filepath='./include/linux/idr.h' line='19' column='1' id='type-id-190'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='idr_rt' type-id='type-id-193' visibility='default' filepath='./include/linux/idr.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='idr_base' type-id='type-id-41' visibility='default' filepath='./include/linux/idr.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='idr_next' type-id='type-id-41' visibility='default' filepath='./include/linux/idr.h' line='22' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='xarray' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/xarray.h' line='292' column='1' id='type-id-193'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='xa_lock' type-id='type-id-72' visibility='default' filepath='./include/linux/xarray.h' line='293' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='xa_flags' type-id='type-id-194' visibility='default' filepath='./include/linux/xarray.h' line='295' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='xa_head' type-id='type-id-108' visibility='default' filepath='./include/linux/xarray.h' line='296' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='gfp_t' type-id='type-id-41' filepath='./include/linux/types.h' line='153' column='1' id='type-id-194'/>
+    <typedef-decl name='u32' type-id='type-id-195' filepath='./include/asm-generic/int-ll64.h' line='21' column='1' id='type-id-191'/>
+    <typedef-decl name='__u32' type-id='type-id-41' filepath='./include/uapi/asm-generic/int-ll64.h' line='27' column='1' id='type-id-195'/>
+    <class-decl name='kernfs_syscall_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='171' column='1' id='type-id-196'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='show_options' type-id='type-id-197' visibility='default' filepath='./include/linux/kernfs.h' line='172' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mkdir' type-id='type-id-198' visibility='default' filepath='./include/linux/kernfs.h' line='174' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='rmdir' type-id='type-id-199' visibility='default' filepath='./include/linux/kernfs.h' line='176' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='rename' type-id='type-id-200' visibility='default' filepath='./include/linux/kernfs.h' line='177' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='show_path' type-id='type-id-201' visibility='default' filepath='./include/linux/kernfs.h' line='179' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_elem_symlink' size-in-bits='64' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='96' column='1' id='type-id-186'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='target_kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='97' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_elem_attr' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='100' column='1' id='type-id-187'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ops' type-id='type-id-202' visibility='default' filepath='./include/linux/kernfs.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='open' type-id='type-id-203' visibility='default' filepath='./include/linux/kernfs.h' line='102' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='size' type-id='type-id-112' visibility='default' filepath='./include/linux/kernfs.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='notify_next' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='104' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='220' column='1' id='type-id-204'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='open' type-id='type-id-205' visibility='default' filepath='./include/linux/kernfs.h' line='225' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='release' type-id='type-id-206' visibility='default' filepath='./include/linux/kernfs.h' line='226' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='seq_show' type-id='type-id-207' visibility='default' filepath='./include/linux/kernfs.h' line='239' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='seq_start' type-id='type-id-208' visibility='default' filepath='./include/linux/kernfs.h' line='241' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='seq_next' type-id='type-id-209' visibility='default' filepath='./include/linux/kernfs.h' line='242' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='seq_stop' type-id='type-id-210' visibility='default' filepath='./include/linux/kernfs.h' line='243' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='read' type-id='type-id-211' visibility='default' filepath='./include/linux/kernfs.h' line='245' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='atomic_write_len' type-id='type-id-101' visibility='default' filepath='./include/linux/kernfs.h' line='255' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='prealloc' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='262' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='write' type-id='type-id-211' visibility='default' filepath='./include/linux/kernfs.h' line='263' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='poll' type-id='type-id-212' visibility='default' filepath='./include/linux/kernfs.h' line='266' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='mmap' type-id='type-id-213' visibility='default' filepath='./include/linux/kernfs.h' line='269' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernfs_open_file' size-in-bits='1088' is-struct='yes' visibility='default' filepath='./include/linux/kernfs.h' line='200' column='1' id='type-id-214'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kn' type-id='type-id-69' visibility='default' filepath='./include/linux/kernfs.h' line='202' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='file' type-id='type-id-120' visibility='default' filepath='./include/linux/kernfs.h' line='203' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='seq_file' type-id='type-id-215' visibility='default' filepath='./include/linux/kernfs.h' line='204' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='priv' type-id='type-id-108' visibility='default' filepath='./include/linux/kernfs.h' line='205' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='mutex' type-id='type-id-149' visibility='default' filepath='./include/linux/kernfs.h' line='208' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='prealloc_mutex' type-id='type-id-149' visibility='default' filepath='./include/linux/kernfs.h' line='209' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='event' type-id='type-id-1' visibility='default' filepath='./include/linux/kernfs.h' line='210' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='list' type-id='type-id-49' visibility='default' filepath='./include/linux/kernfs.h' line='211' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='prealloc_buf' type-id='type-id-9' visibility='default' filepath='./include/linux/kernfs.h' line='212' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='atomic_write_len' type-id='type-id-101' visibility='default' filepath='./include/linux/kernfs.h' line='214' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7'>
+        <var-decl name='mmapped' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='215' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6'>
+        <var-decl name='released' type-id='type-id-57' visibility='default' filepath='./include/linux/kernfs.h' line='216' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='vm_ops' type-id='type-id-119' visibility='default' filepath='./include/linux/kernfs.h' line='217' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='__poll_t' type-id='type-id-41' filepath='./include/uapi/linux/types.h' line='52' column='1' id='type-id-216'/>
+    <union-decl name='kernfs_node_id' size-in-bits='64' visibility='default' filepath='./include/linux/kernfs.h' line='108' column='1' id='type-id-183'>
+      <data-member access='private'>
+        <var-decl name='' type-id='type-id-217' visibility='default'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='id' type-id='type-id-126' visibility='default' filepath='./include/linux/kernfs.h' line='119' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='__anonymous_struct__9' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./include/linux/kernfs.h' line='109' column='1' id='type-id-217'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ino' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='116' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='generation' type-id='type-id-191' visibility='default' filepath='./include/linux/kernfs.h' line='117' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kref' size-in-bits='32' is-struct='yes' visibility='default' filepath='./include/linux/kref.h' line='19' column='1' id='type-id-70'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='refcount' type-id='type-id-218' visibility='default' filepath='./include/linux/kref.h' line='20' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='refcount_t' type-id='type-id-219' filepath='./include/linux/refcount.h' line='21' column='1' id='type-id-218'/>
+    <class-decl name='refcount_struct' size-in-bits='32' is-struct='yes' visibility='default' filepath='./include/linux/refcount.h' line='19' column='1' id='type-id-219'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='refs' type-id='type-id-129' visibility='default' filepath='./include/linux/refcount.h' line='20' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='50' column='1' id='type-id-220'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='attr' type-id='type-id-98' visibility='default' filepath='./include/linux/module.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='show' type-id='type-id-221' visibility='default' filepath='./include/linux/module.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='store' type-id='type-id-222' visibility='default' filepath='./include/linux/module.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='setup' type-id='type-id-223' visibility='default' filepath='./include/linux/module.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='test' type-id='type-id-224' visibility='default' filepath='./include/linux/module.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='free' type-id='type-id-225' visibility='default' filepath='./include/linux/module.h' line='58' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernel_symbol' size-in-bits='96' is-struct='yes' visibility='default' filepath='./include/linux/export.h' line='69' column='1' id='type-id-226'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='name_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='namespace_offset' type-id='type-id-1' visibility='default' filepath='./include/linux/export.h' line='72' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s32' type-id='type-id-227' filepath='./include/asm-generic/int-ll64.h' line='20' column='1' id='type-id-228'/>
+    <typedef-decl name='__s32' type-id='type-id-1' filepath='./include/uapi/asm-generic/int-ll64.h' line='26' column='1' id='type-id-227'/>
+    <class-decl name='kernel_param' size-in-bits='320' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='69' column='1' id='type-id-229'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-52' visibility='default' filepath='./include/linux/moduleparam.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/moduleparam.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ops' type-id='type-id-230' visibility='default' filepath='./include/linux/moduleparam.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='perm' type-id='type-id-231' visibility='default' filepath='./include/linux/moduleparam.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='208'>
+        <var-decl name='level' type-id='type-id-232' visibility='default' filepath='./include/linux/moduleparam.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='216'>
+        <var-decl name='flags' type-id='type-id-233' visibility='default' filepath='./include/linux/moduleparam.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='' type-id='type-id-234' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kernel_param_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='47' column='1' id='type-id-235'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='flags' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='set' type-id='type-id-236' visibility='default' filepath='./include/linux/moduleparam.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='get' type-id='type-id-237' visibility='default' filepath='./include/linux/moduleparam.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='free' type-id='type-id-172' visibility='default' filepath='./include/linux/moduleparam.h' line='55' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='s8' type-id='type-id-238' filepath='./include/asm-generic/int-ll64.h' line='16' column='1' id='type-id-232'/>
+    <typedef-decl name='__s8' type-id='type-id-38' filepath='./include/uapi/asm-generic/int-ll64.h' line='20' column='1' id='type-id-238'/>
+    <typedef-decl name='u8' type-id='type-id-239' filepath='./include/asm-generic/int-ll64.h' line='17' column='1' id='type-id-233'/>
+    <typedef-decl name='__u8' type-id='type-id-40' filepath='./include/uapi/asm-generic/int-ll64.h' line='21' column='1' id='type-id-239'/>
+    <union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='76' column='1' id='type-id-234'>
+      <data-member access='private'>
+        <var-decl name='arg' type-id='type-id-108' visibility='default' filepath='./include/linux/moduleparam.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='str' type-id='type-id-240' visibility='default' filepath='./include/linux/moduleparam.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='arr' type-id='type-id-241' visibility='default' filepath='./include/linux/moduleparam.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='kparam_string' size-in-bits='128' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='86' column='1' id='type-id-242'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='maxlen' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='string' type-id='type-id-9' visibility='default' filepath='./include/linux/moduleparam.h' line='88' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='kparam_array' size-in-bits='256' is-struct='yes' visibility='default' filepath='./include/linux/moduleparam.h' line='92' column='1' id='type-id-243'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='max' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='elemsize' type-id='type-id-41' visibility='default' filepath='./include/linux/moduleparam.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='num' type-id='type-id-244' visibility='default' filepath='./include/linux/moduleparam.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ops' type-id='type-id-230' visibility='default' filepath='./include/linux/moduleparam.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='elem' type-id='type-id-108' visibility='default' filepath='./include/linux/moduleparam.h' line='98' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='module_layout' size-in-bits='640' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='307' column='1' id='type-id-60'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='base' type-id='type-id-108' visibility='default' filepath='./include/linux/module.h' line='309' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='311' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='text_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='313' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ro_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='315' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='ro_after_init_size' type-id='type-id-41' visibility='default' filepath='./include/linux/module.h' line='317' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='mtn' type-id='type-id-245' visibility='default' filepath='./include/linux/module.h' line='320' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mod_tree_node' size-in-bits='448' is-struct='yes' visibility='default' filepath='./include/linux/module.h' line='302' column='1' id='type-id-245'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='mod' type-id='type-id-64' visibility='default' filepath='./include/linux/module.h' line='303' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='node' type-id='type-id-246' visibility='default' filepath='./include/linux/module.h' line='304' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='latch_tree_node' size-in-bits='384' is-struct='yes' visibility='default' filepath='./include/linux/rbtree_latch.h' line='40' column='1' id='type-id-246'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='node' type-id='type-id-35' visibility='default' filepath='./include/linux/rbtree_latch.h' line='41' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='mod_arch_specific' is-struct='yes' visibility='default' filepath='./arch/x86/include/asm/module.h' line='8' column='1' id='type-id-61'/>
+    <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-118'/>
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-247'/>
+    <pointer-type-def type-id='type-id-247' size-in-bits='64' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-248'/>
+    <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-106'/>
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-9'/>
+    <pointer-type-def type-id='type-id-158' size-in-bits='64' id='type-id-66'/>
+    <qualified-type-def type-id='type-id-103' const='yes' id='type-id-249'/>
+    <pointer-type-def type-id='type-id-249' size-in-bits='64' id='type-id-250'/>
+    <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-88'/>
+    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-251'/>
+    <pointer-type-def type-id='type-id-251' size-in-bits='64' id='type-id-52'/>
+    <pointer-type-def type-id='type-id-252' size-in-bits='64' id='type-id-253'/>
+    <qualified-type-def type-id='type-id-253' const='yes' id='type-id-81'/>
+    <qualified-type-def type-id='type-id-229' const='yes' id='type-id-254'/>
+    <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-255'/>
+    <qualified-type-def type-id='type-id-235' const='yes' id='type-id-256'/>
+    <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-230'/>
+    <qualified-type-def type-id='type-id-226' const='yes' id='type-id-257'/>
+    <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-54'/>
+    <qualified-type-def type-id='type-id-204' const='yes' id='type-id-258'/>
+    <pointer-type-def type-id='type-id-258' size-in-bits='64' id='type-id-202'/>
+    <qualified-type-def type-id='type-id-167' const='yes' id='type-id-259'/>
+    <pointer-type-def type-id='type-id-259' size-in-bits='64' id='type-id-260'/>
+    <pointer-type-def type-id='type-id-261' size-in-bits='64' id='type-id-89'/>
+    <qualified-type-def type-id='type-id-243' const='yes' id='type-id-262'/>
+    <pointer-type-def type-id='type-id-262' size-in-bits='64' id='type-id-241'/>
+    <qualified-type-def type-id='type-id-242' const='yes' id='type-id-263'/>
+    <pointer-type-def type-id='type-id-263' size-in-bits='64' id='type-id-240'/>
+    <qualified-type-def type-id='type-id-79' const='yes' id='type-id-264'/>
+    <pointer-type-def type-id='type-id-264' size-in-bits='64' id='type-id-73'/>
+    <qualified-type-def type-id='type-id-228' const='yes' id='type-id-265'/>
+    <pointer-type-def type-id='type-id-265' size-in-bits='64' id='type-id-55'/>
+    <qualified-type-def type-id='type-id-92' const='yes' id='type-id-266'/>
+    <pointer-type-def type-id='type-id-266' size-in-bits='64' id='type-id-86'/>
+    <qualified-type-def type-id='type-id-151' const='yes' id='type-id-231'/>
+    <qualified-type-def type-id='type-id-153' const='yes' id='type-id-267'/>
+    <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-150'/>
+    <qualified-type-def type-id='type-id-30' const='yes' id='type-id-268'/>
+    <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-119'/>
+    <pointer-type-def type-id='type-id-156' size-in-bits='64' id='type-id-135'/>
+    <pointer-type-def type-id='type-id-157' size-in-bits='64' id='type-id-160'/>
+    <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-58'/>
+    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-120'/>
+    <pointer-type-def type-id='type-id-269' size-in-bits='64' id='type-id-59'/>
+    <pointer-type-def type-id='type-id-270' size-in-bits='64' id='type-id-237'/>
+    <pointer-type-def type-id='type-id-271' size-in-bits='64' id='type-id-236'/>
+    <pointer-type-def type-id='type-id-272' size-in-bits='64' id='type-id-110'/>
+    <pointer-type-def type-id='type-id-273' size-in-bits='64' id='type-id-199'/>
+    <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-198'/>
+    <pointer-type-def type-id='type-id-275' size-in-bits='64' id='type-id-200'/>
+    <pointer-type-def type-id='type-id-276' size-in-bits='64' id='type-id-205'/>
+    <pointer-type-def type-id='type-id-277' size-in-bits='64' id='type-id-213'/>
+    <pointer-type-def type-id='type-id-278' size-in-bits='64' id='type-id-279'/>
+    <qualified-type-def type-id='type-id-279' const='yes' id='type-id-80'/>
+    <pointer-type-def type-id='type-id-280' size-in-bits='64' id='type-id-281'/>
+    <qualified-type-def type-id='type-id-281' const='yes' id='type-id-82'/>
+    <pointer-type-def type-id='type-id-282' size-in-bits='64' id='type-id-224'/>
+    <pointer-type-def type-id='type-id-283' size-in-bits='64' id='type-id-201'/>
+    <pointer-type-def type-id='type-id-284' size-in-bits='64' id='type-id-197'/>
+    <pointer-type-def type-id='type-id-285' size-in-bits='64' id='type-id-207'/>
+    <pointer-type-def type-id='type-id-229' size-in-bits='64' id='type-id-56'/>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-184'/>
+    <pointer-type-def type-id='type-id-181' size-in-bits='64' id='type-id-69'/>
+    <pointer-type-def type-id='type-id-214' size-in-bits='64' id='type-id-286'/>
+    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-203'/>
+    <pointer-type-def type-id='type-id-189' size-in-bits='64' id='type-id-188'/>
+    <pointer-type-def type-id='type-id-196' size-in-bits='64' id='type-id-192'/>
+    <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-287'/>
+    <pointer-type-def type-id='type-id-84' size-in-bits='64' id='type-id-68'/>
+    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-288'/>
+    <pointer-type-def type-id='type-id-63' size-in-bits='64' id='type-id-53'/>
+    <pointer-type-def type-id='type-id-71' size-in-bits='64' id='type-id-67'/>
+    <pointer-type-def type-id='type-id-174' size-in-bits='64' id='type-id-289'/>
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-133'/>
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-62'/>
+    <pointer-type-def type-id='type-id-112' size-in-bits='64' id='type-id-290'/>
+    <pointer-type-def type-id='type-id-123' size-in-bits='64' id='type-id-115'/>
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-64'/>
+    <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-51'/>
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-291'/>
+    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-65'/>
+    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-128'/>
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-292'/>
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-122'/>
+    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-215'/>
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-293'/>
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-159'/>
+    <pointer-type-def type-id='type-id-294' size-in-bits='64' id='type-id-212'/>
+    <pointer-type-def type-id='type-id-295' size-in-bits='64' id='type-id-169'/>
+    <pointer-type-def type-id='type-id-296' size-in-bits='64' id='type-id-109'/>
+    <pointer-type-def type-id='type-id-297' size-in-bits='64' id='type-id-211'/>
+    <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-93'/>
+    <pointer-type-def type-id='type-id-299' size-in-bits='64' id='type-id-94'/>
+    <pointer-type-def type-id='type-id-300' size-in-bits='64' id='type-id-221'/>
+    <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-222'/>
+    <pointer-type-def type-id='type-id-302' size-in-bits='64' id='type-id-104'/>
+    <pointer-type-def type-id='type-id-303' size-in-bits='64' id='type-id-105'/>
+    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-244'/>
+    <pointer-type-def type-id='type-id-304' size-in-bits='64' id='type-id-127'/>
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-136'/>
+    <pointer-type-def type-id='type-id-113' size-in-bits='64' id='type-id-114'/>
+    <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-206'/>
+    <pointer-type-def type-id='type-id-306' size-in-bits='64' id='type-id-85'/>
+    <pointer-type-def type-id='type-id-307' size-in-bits='64' id='type-id-91'/>
+    <pointer-type-def type-id='type-id-308' size-in-bits='64' id='type-id-225'/>
+    <pointer-type-def type-id='type-id-309' size-in-bits='64' id='type-id-223'/>
+    <pointer-type-def type-id='type-id-310' size-in-bits='64' id='type-id-210'/>
+    <pointer-type-def type-id='type-id-311' size-in-bits='64' id='type-id-172'/>
+    <pointer-type-def type-id='type-id-312' size-in-bits='64' id='type-id-164'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-108'/>
+    <pointer-type-def type-id='type-id-313' size-in-bits='64' id='type-id-170'/>
+    <pointer-type-def type-id='type-id-314' size-in-bits='64' id='type-id-90'/>
+    <pointer-type-def type-id='type-id-315' size-in-bits='64' id='type-id-208'/>
+    <pointer-type-def type-id='type-id-316' size-in-bits='64' id='type-id-209'/>
+    <pointer-type-def type-id='type-id-317' size-in-bits='64' id='type-id-171'/>
+    <pointer-type-def type-id='type-id-138' size-in-bits='64' id='type-id-318'/>
+    <var-decl name='__this_module' type-id='type-id-47' visibility='default' filepath='./include/linux/export.h' line='15' column='1'/>
+    <function-type size-in-bits='64' id='type-id-252'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-52'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-261'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-260'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-269'>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-270'>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-255'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-271'>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-255'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-272'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-114'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-273'>
+      <parameter type-id='type-id-69'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-274'>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-99'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-275'>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-276'>
+      <parameter type-id='type-id-286'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-277'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-114'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-278'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-280'>
+      <parameter type-id='type-id-67'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-288'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-282'>
+      <parameter type-id='type-id-64'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-283'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-69'/>
+      <parameter type-id='type-id-188'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-284'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-188'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-285'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-1'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-294'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-292'/>
+      <return type-id='type-id-216'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-295'>
+      <return type-id='type-id-57'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-296'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-112'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-297'>
+      <parameter type-id='type-id-286'/>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-101'/>
+      <parameter type-id='type-id-112'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-298'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-299'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-300'>
+      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-291'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-301'>
+      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-291'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-101'/>
+      <return type-id='type-id-96'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-302'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-247'/>
+      <parameter type-id='type-id-1'/>
+      <return type-id='type-id-99'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-303'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-1'/>
+      <return type-id='type-id-99'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-304'>
+      <parameter type-id='type-id-120'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-5'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-305'>
+      <parameter type-id='type-id-286'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-306'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-307'>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-289'/>
+      <parameter type-id='type-id-287'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-308'>
+      <parameter type-id='type-id-64'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-309'>
+      <parameter type-id='type-id-64'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-310'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-311'>
+      <parameter type-id='type-id-108'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-312'>
+      <parameter type-id='type-id-318'/>
+      <return type-id='type-id-2'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-313'>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-314'>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-315'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-290'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-316'>
+      <parameter type-id='type-id-215'/>
+      <parameter type-id='type-id-108'/>
+      <parameter type-id='type-id-290'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-317'>
+      <parameter type-id='type-id-293'/>
+      <return type-id='type-id-108'/>
+    </function-type>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-abidiff/test-crc-report.txt b/tests/data/test-abidiff/test-crc-report.txt
new file mode 100644
index 0000000..4572a20
--- /dev/null
+++ b/tests/data/test-abidiff/test-crc-report.txt
@@ -0,0 +1,9 @@
+Functions changes summary: 0 Removed, 1 Changed, 0 Added function
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
+1 function with some indirect sub-type change:
+
+  [C] 'function void exported_function()' has some indirect sub-type changes:
+
+    CRC value (modversions) changed from 0xe52d5bcf to 0xe52d5bd0
+
diff --git a/tests/data/test-diff-filter/test-PR27569-report-0.txt b/tests/data/test-diff-filter/test-PR27569-report-0.txt
index 9c8bb39..419c9fd 100644
--- a/tests/data/test-diff-filter/test-PR27569-report-0.txt
+++ b/tests/data/test-diff-filter/test-PR27569-report-0.txt
@@ -4,5 +4,7 @@
 1 function with some indirect sub-type change:
 
   [C] 'function void device_add_disk(gendisk*)' at genhd.h:420:1 has some indirect sub-type changes:
+
+    CRC value (modversions) changed from 0x8afa957c to 0xa3bc03c
     parameter 2 of type 'int' was added
 
diff --git a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi
index eff6f7f..56a5853 100644
--- a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi
+++ b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi
@@ -1,41 +1,41 @@
 <abi-corpus version='2.0' path='data/test-read-dwarf/PR25007-sdhci.ko'>
   <elf-function-symbols>
-    <elf-symbol name='__sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='__sdhci_read_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_adma_write_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_alloc_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_calc_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_cleanup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_cqe_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_cqe_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_cqe_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_dumpregs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_enable_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_enable_sdio_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_enable_v4_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_end_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_execute_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_free_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_remove_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_reset_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_resume_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_runtime_resume_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_runtime_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_send_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_send_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_set_clock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_set_ios' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_set_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_set_power_noreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_set_uhs_signaling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_setup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_start_signal_voltage_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_start_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='sdhci_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='__sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74ae518'/>
+    <elf-symbol name='__sdhci_read_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x711f65c'/>
+    <elf-symbol name='sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bfb1b1a'/>
+    <elf-symbol name='sdhci_adma_write_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61fdb22'/>
+    <elf-symbol name='sdhci_alloc_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfeefe08b'/>
+    <elf-symbol name='sdhci_calc_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfcabe7e'/>
+    <elf-symbol name='sdhci_cleanup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x380506bd'/>
+    <elf-symbol name='sdhci_cqe_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69b1936e'/>
+    <elf-symbol name='sdhci_cqe_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ebbc838'/>
+    <elf-symbol name='sdhci_cqe_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e31bffd'/>
+    <elf-symbol name='sdhci_dumpregs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda29e2bd'/>
+    <elf-symbol name='sdhci_enable_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3862257d'/>
+    <elf-symbol name='sdhci_enable_sdio_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x143583bc'/>
+    <elf-symbol name='sdhci_enable_v4_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3843e2e'/>
+    <elf-symbol name='sdhci_end_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6d3b6ee'/>
+    <elf-symbol name='sdhci_execute_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x452bd7b7'/>
+    <elf-symbol name='sdhci_free_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4626d735'/>
+    <elf-symbol name='sdhci_remove_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6be911b2'/>
+    <elf-symbol name='sdhci_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x762121fa'/>
+    <elf-symbol name='sdhci_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a38d936'/>
+    <elf-symbol name='sdhci_reset_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0ca49ae'/>
+    <elf-symbol name='sdhci_resume_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e5157bf'/>
+    <elf-symbol name='sdhci_runtime_resume_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62e5c15d'/>
+    <elf-symbol name='sdhci_runtime_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4526a0d1'/>
+    <elf-symbol name='sdhci_send_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1512952'/>
+    <elf-symbol name='sdhci_send_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x213a51d7'/>
+    <elf-symbol name='sdhci_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67f74689'/>
+    <elf-symbol name='sdhci_set_clock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5825825c'/>
+    <elf-symbol name='sdhci_set_ios' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddc78000'/>
+    <elf-symbol name='sdhci_set_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9e167b5'/>
+    <elf-symbol name='sdhci_set_power_noreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60affb80'/>
+    <elf-symbol name='sdhci_set_uhs_signaling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4015e747'/>
+    <elf-symbol name='sdhci_setup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5d73caf'/>
+    <elf-symbol name='sdhci_start_signal_voltage_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb9c7748'/>
+    <elf-symbol name='sdhci_start_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39f40b95'/>
+    <elf-symbol name='sdhci_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6de7a42'/>
   </elf-function-symbols>
   <abi-instr address-size='64' path='/ws/android/kernel/aosp/common-mainline/common/drivers/mmc/host/sdhci.c' comp-dir-path='/ws/android/kernel/aosp/common-mainline/out/android-mainline/common' language='LANG_C89'>
     <type-decl name='__ARRAY_SIZE_TYPE__' size-in-bits='64' id='type-id-1'/>
diff --git a/tests/data/test-read-write/test-crc.xml b/tests/data/test-read-write/test-crc.xml
new file mode 100644
index 0000000..b283a71
--- /dev/null
+++ b/tests/data/test-read-write/test-crc.xml
@@ -0,0 +1,10 @@
+<abi-corpus version='2.0' path='tests/data/test-symtab/kernel-modversions/one_of_each.ko' architecture='elf-amd-x86_64'>
+  <elf-function-symbols>
+    <elf-symbol name='exported_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe52d5bcf'/>
+    <elf-symbol name='exported_function_gpl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfda43846'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='exported_variable' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee94d699'/>
+    <elf-symbol name='exported_variable_gpl' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41336c46'/>
+  </elf-variable-symbols>
+</abi-corpus>
diff --git a/tests/data/test-symtab/kernel-modversions/Makefile b/tests/data/test-symtab/kernel-modversions/Makefile
new file mode 100644
index 0000000..1479ae4
--- /dev/null
+++ b/tests/data/test-symtab/kernel-modversions/Makefile
@@ -0,0 +1,19 @@
+obj-m += one_of_each.o
+
+# Overwrite to an actual kernel dir when using this:
+#
+# $ make KDIR=/path/to/actual/kernel/source/dir
+#
+KDIR := /tmp/some/kernel/source/dir
+
+PWD := $(shell pwd)
+default:
+	make -C $(KDIR) tinyconfig
+	cd $(KDIR) && ./scripts/config -e 64BIT -e MODULES -e MODVERSIONS -e CONFIG_DEBUG_INFO
+	$(MAKE) -C $(KDIR) olddefconfig
+	$(MAKE) -C $(KDIR)
+	$(MAKE) -C $(KDIR) M=$(PWD) modules
+	rm -rf *.mod.c *.o .*.cmd .*.d *.mod modules.order Module.symvers .tmp_versions
+
+clean:
+	rm -f *.ko
diff --git a/tests/data/test-symtab/kernel-modversions/one_of_each.c b/tests/data/test-symtab/kernel-modversions/one_of_each.c
new file mode 120000
index 0000000..27c87e5
--- /dev/null
+++ b/tests/data/test-symtab/kernel-modversions/one_of_each.c
@@ -0,0 +1 @@
+../kernel/one_of_each.c
\ No newline at end of file
diff --git a/tests/data/test-symtab/kernel-modversions/one_of_each.ko b/tests/data/test-symtab/kernel-modversions/one_of_each.ko
new file mode 100644
index 0000000..c6f1bed
--- /dev/null
+++ b/tests/data/test-symtab/kernel-modversions/one_of_each.ko
Binary files differ
diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc
index 38f1301..76fde58 100644
--- a/tests/test-abidiff-exit.cc
+++ b/tests/test-abidiff-exit.cc
@@ -393,6 +393,17 @@
     "output/test-abidiff-exit/test-non-leaf-array-report.txt"
   },
   {
+    "data/test-abidiff-exit/test-crc-v0.abi",
+    "data/test-abidiff-exit/test-crc-v1.abi",
+    "",
+    "",
+    "",
+    "",
+    abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+    "data/test-abidiff-exit/test-crc-report.txt",
+    "output/test-abidiff-exit/test-crc-report.txt"
+  },
+  {
     "data/test-abidiff-exit/test-missing-alias.abi",
     "data/test-abidiff-exit/test-missing-alias.abi",
     "data/test-abidiff-exit/test-missing-alias.suppr",
diff --git a/tests/test-abidiff.cc b/tests/test-abidiff.cc
index 82683f4..3452b7e 100644
--- a/tests/test-abidiff.cc
+++ b/tests/test-abidiff.cc
@@ -77,7 +77,7 @@
   {
     "data/test-abidiff/test-PR18166-libtirpc.so.abi",
     "data/test-abidiff/test-PR18166-libtirpc.so.abi",
-    "data/test-abidiff/test-PR18166-libtirpc.so.report.txt",
+    "data/test-abidiff/empty-report.txt",
     "output/test-abidiff/test-PR18166-libtirpc.so.report.txt"
   },
   {
@@ -89,26 +89,44 @@
   {
     "data/test-abidiff/test-PR24552-v0.abi",
     "data/test-abidiff/test-PR24552-v1.abi",
-    "data/test-abidiff/test-PR24552-report0.txt",
+    "data/test-abidiff/empty-report.txt",
     "output/test-abidiff/test-PR24552-report0.txt"
   },
   {
     "data/test-abidiff/test-empty-corpus-0.xml",
     "data/test-abidiff/test-empty-corpus-0.xml",
-    "data/test-abidiff/test-empty-corpus-report.txt",
-    "output/test-abidiff/test-empty-corpus-report.txt"
+    "data/test-abidiff/empty-report.txt",
+    "output/test-abidiff/test-empty-corpus-report-0.txt"
   },
   {
     "data/test-abidiff/test-empty-corpus-1.xml",
     "data/test-abidiff/test-empty-corpus-1.xml",
-    "data/test-abidiff/test-empty-corpus-report.txt",
-    "output/test-abidiff/test-empty-corpus-report.txt"
+    "data/test-abidiff/empty-report.txt",
+    "output/test-abidiff/test-empty-corpus-report-1.txt"
   },
   {
     "data/test-abidiff/test-empty-corpus-2.xml",
     "data/test-abidiff/test-empty-corpus-2.xml",
-    "data/test-abidiff/test-empty-corpus-report.txt",
-    "output/test-abidiff/test-empty-corpus-report.txt"
+    "data/test-abidiff/empty-report.txt",
+    "output/test-abidiff/test-empty-corpus-report-1.txt"
+  },
+  {
+    "data/test-abidiff/test-crc-0.xml",
+    "data/test-abidiff/test-crc-1.xml",
+    "data/test-abidiff/empty-report.txt",
+    "output/test-abidiff/test-crc-report-0-1.txt"
+  },
+  {
+    "data/test-abidiff/test-crc-1.xml",
+    "data/test-abidiff/test-crc-0.xml",
+    "data/test-abidiff/empty-report.txt",
+    "output/test-abidiff/test-crc-report-1-0.txt"
+  },
+  {
+    "data/test-abidiff/test-crc-1.xml",
+    "data/test-abidiff/test-crc-2.xml",
+    "data/test-abidiff/test-crc-report.txt",
+    "output/test-abidiff/test-crc-report-1-2.txt"
   },
   // This should be the last entry.
   {0, 0, 0, 0}
diff --git a/tests/test-read-write.cc b/tests/test-read-write.cc
index ffca005..54bc2b5 100644
--- a/tests/test-read-write.cc
+++ b/tests/test-read-write.cc
@@ -238,6 +238,12 @@
     "data/test-read-write/test28-without-std-vars-ref.xml",
     "output/test-read-write/test28-without-std-vars.xml"
   },
+  {
+    "data/test-read-write/test-crc.xml",
+    "",
+    "data/test-read-write/test-crc.xml",
+    "output/test-read-write/test-crc.xml",
+  },
   // This should be the last entry.
   {NULL, NULL, NULL, NULL}
 };
diff --git a/tests/test-symtab.cc b/tests/test-symtab.cc
index b062ea4..fd0fdd4 100644
--- a/tests/test-symtab.cc
+++ b/tests/test-symtab.cc
@@ -411,3 +411,18 @@
       }
     }
 }
+
+TEST_CASE("Symtab::KernelSymtabsWithCRC", "[symtab, crc, kernel, ksymtab]")
+{
+  const std::string base_path = "kernel-modversions/";
+
+  GIVEN("a binary with one function and one variable (GPL) exported")
+  {
+    const std::string  binary = base_path + "one_of_each.ko";
+    const corpus_sptr& corpus = assert_symbol_count(binary, 2, 2);
+    CHECK(corpus->lookup_function_symbol("exported_function")->get_crc() != 0);
+    CHECK(corpus->lookup_function_symbol("exported_function_gpl")->get_crc() != 0);
+    CHECK(corpus->lookup_variable_symbol("exported_variable")->get_crc() != 0);
+    CHECK(corpus->lookup_variable_symbol("exported_variable_gpl")->get_crc() != 0);
+  }
+}